帝国cms上传中文附件乱码的解决方法
更新时间:2015-08-13 22:27:11 作者:佚名 我要评论(0)
有时候我们不想给上传的附件改名,即保留默认的附件名称,有时候附件是中文的,那么默认的帝国系统就会出现乱码,这里吾爱给出一个解决方案:使用iconv进行编码转换打开e/c
有时候我们不想给上传的附件改名,即保留默认的附件名称,有时候附件是中文的,那么默认的帝国系统就会出现乱码,这里吾爱给出一个解决方案:
使用iconv进行编码转换
打开e/class/connect.php:
查找:
$r[yname]=$r[savepath].$r[filename];
修改成:
$r[yname]=$r[savepath].iconv("UTF-8","GB2312//IGNORE",$r[filename]);
或者:
$r[yname]=$r[savepath].iconv("UTF-8","GB2312//TRANSLIT",$r[filename]);
但是在转换过程中,由于GB2312的字符不是很完整,导致部分字符无法进行转换。IGNORE则会忽视这个字符,比如遇到“—”时,转换不了。则丢失此字符
TRANSLIT则会转换其字符为相近的字符,如"_"
虽然这也可以,但是对于吾爱这种力求完美的人来说,不是太好
最终解决方案就是:
$r[yname]=$r[savepath].iconv("UTF-8","GBK//TRANSLIT",$r[filename]);
最新评论