帝国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]);


您可能感兴趣的文章:

相关文章

  • 帝国cms上传中文附件乱码的解决方法

    帝国cms上传中文附件乱码的解决方法

    有时候我们不想给上传的附件改名,即保留默认的附件名称,有时候附件是中文的,那么默认的帝国系统就会出现乱码,这里吾爱给出一个解决方案:使用iconv进行编码转换打开e/c
    2015-08-13

最新评论