Maison > développement back-end > tutoriel php > 上传文件的中文乱码问题

上传文件的中文乱码问题

WBOY
Libérer: 2016-06-23 14:17:21
original
1180 Les gens l'ont consulté

文件上传 乱码

所有字符集都设置的是utf8,但上传文件后在文件目录下发现中文文件名乱码,然后就在上传前把文件名转为了GB2312码,这时候文件名可以显示中文了,但是数据库存放路径的时候不能插入了,我就把那张表改成了GB2312的字符集,按理说这样就可以了吧,还是插入不了?怎么办

回复讨论(解决方案)

这里涉及两个概念,系统的编码和字符的编码
不知道你上传前是什么系统,如果是windows(98以后),选了"gb2312"编码实际上是cp936(相当于GBK)编码
而数据库的字符编码gb2312和gbk并不相同,汉字少很多,应该选gbk编码

还不行的话就要考虑其他因素了,如果服务器是windows,那是个麻烦事,因为php目前还不能有效处理windows下unicode路径??假设你的全路径有任意一个字符超出了字符集,windows是采用混合编码记录路径的;而*nix则是统一以utf-8编码记录路径,所以问题不大

csdn的开发人员又做多余的事了,帖子的分段又没了,唉……

说一个解决思路楼主试一试

还是全用UTF-8,上传后在PHP文件内再强制转换一次 上传后检测文件名是UTF-8还是GBK还是GB2312 然后统一转换为UTF-8

参考 http://www.cnblogs.com/rosenia/archive/2013/05/20/3088146.html 数组多加一个GB2312

然后再存

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal