时间:2021-07-01 10:21:17 帮助过:12人阅读
这里涉及两个概念,系统的编码和字符的编码
不知道你上传前是什么系统,如果是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
然后再存