最新消息:本站所有跳转向bbs.ykit.cn的附件将全面停止,附件已转移到https://www.qingsj.com

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

帝国CMS 有客 1371浏览 0评论

有时候我们不想给上传的附件改名,即保留默认的附件名称,有时候附件是中文的,那么默认的帝国系统就会出现乱码,这里吾爱给出一个解决方案:
使用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上传中文附件乱码的解决方法

您必须 登录 才能发表评论!