各位高手前辈:小弟在使用帝国自带的采集功能时,预览采集内容时所有文字一切正常,但正式采集得到的内容,凡是生僻字就会显示乱码(如下图所示),普通文字则正常,请问是什么原因,如何解决?紧急,知道的高手可在此回复或联系QQ11191176,在此拜谢,有大红包!
注:采集设置中的“页面编码转换”我选的是:GB2312->UTF8,因为我网站的编码是UTF8,采集目标站没有显示用的是什么编码,但只有选GB2312->UTF8才能正常预览和采集,其他“正常编码、 BIG5->UTF8、UNICODE->UTF8都不行。
帝国cms编码缺陷
矫正方法:
修改文件 /e/class/cjfun.php
大约 829 行
$str=DoIconvVal("GB2312","UTF8",$str);
替换为:
$str=mb_convert_encoding( $str,'UTF8','GBK');
谢老板大红包!
测试 如用
$str=mb_convert_encoding( $str,'UTF8','gb2312');
则个别汉字,会变成问号。
可见有的网站,虽然标明的编码是gb2312 ,但是个别字,不太好转。
解决的方法,就是在编码函数的参数中,用gbk替代gb2312
因为,gb2312是gbk的子集。甚至用 GB18030更可靠:
$str=mb_convert_encoding( $str,'UTF8','GB18030');