php上传文件实际名称,为什么文件发过来时文件名是乱码?

用户投稿 45 0

关于“php文件上传文件名乱码”的问题,小编就整理了【2】个相关介绍“php文件上传文件名乱码”的解答:

为什么文件发过来时文件名是乱码?

文件分为两种:一是正常文件,一是链接文件。对于正常的文件在上传后,文件名不会有变化。

对于链接文件,在上传后,系统上传的是链接的目的文件,所以文件名有变化。对于链接文件,如果是链接到本地的文件,则实际上传的是链接到的具体文件,文件名也是那个文件名;如果是链接到一个网页,则实际上传的就是那个网页,文件名则是网址了。

对于出现的所谓的乱码,其实就是那个网页的实际网址。所以建议不要上传链接文件。

文件名显示出来的是乱码?

  方法一:找一台Windows版本相同且显示正常的机器,依下列步骤进行:  1.在正常机器上选择“开始”→“运行”,在对话框中键入“regedit”,打开注册表编辑器;  2.请你将光标定位到“HKEY_LOCAL_MACHINE systemCurrentControlSetControl Fontassoc”,然后选择“注册表”→“导出注册表文件”,再选择“分支”,导出该分支注册表信息到文件(如ZT.REG)中;  3.把ZT.REG文件拷贝到你那显示乱码的机器上,方法是:在显示乱码的机器上运行“regedit”,打开注册表编辑器,选择“注册表”→“导入注册注册表”,把ZT.REG文件导入注册表中即可。  方法二:如果你找不到一台与你的Windows版本相同且显示正常的机器,则需要手工恢复字体部分的注册表  项,其步骤是:  1.首先在显示乱码的机器上选择“开始”→“运行”,在对话框中键入“regedit”,打开注册表编辑器;  2.选择“HKEY_LOCAL_MACHINESystem CurrentControlSetControlFontassoc”,正常情况下,会有Associated DeaultFonts、Associated CharSet两个文件夹,其正确的内容应是:  子目录内容  中文Win98  中文Win98(OEM版)  中文Win2000  Associated CharSet  ANSI(00)=“yes”  GB2312(86)=“yes”  DEN(FF)=“yes”  SYMBOL(02)=“no”  ANSI(00)=“yes”  GB2312(86)=“yes”  OEM(FF)=“yes”  SYMBOL(02)=“no”  ANSI(00)=“yes”  OEM(FF)=“yes”  SYMBOL(02)=“no”  Associated DefaultFonts  AssocSystemFont=“simsun.ttf”  FontPackageDecorative=“宋体”  FontPackageDontcare=“宋体”  FontPackageModern=“宋体”  FontPackageRoman=“宋体”  FontPackageScript=“宋体”  FontPackageSwiss=“宋体”  或  AssocSystemFont=“simsun.ttf”  FontPackage=“新宋体”  FontPackageDecorative=“新宋体”  FontPackageDontcare=“新宋体”  FontPackageModern=“新宋体”  FontPackageRoman=“新宋体”  FontPackageScript=“新宋体”  FontPackageSwiss=“新宋体”  3.当出现汉字乱码时,上述两个文件夹中的内容就会不完整,有的没有Associated CharSet文件夹或其中的内容残缺不全;有的 Associated DefaulFonts下的内容残缺。如果遇到这种情况怎么办呢?其实你只要打开注册表编辑器,在 “HKEY_LOCAL_MACHINESystemCurrentControlSetControlFonassoc”下,根据以上的正确内容恢复即可。

到此,以上就是小编对于“php文件上传文件名乱码”的问题就介绍到这了,希望介绍关于“php文件上传文件名乱码”的【2】点解答对大家有用。

抱歉,评论功能暂时关闭!