• 欢迎访问金刀客博客!
  • 2019,春节快乐!

ecshop 2.7.3 gbk版“我的推荐”中效果出现乱码的解决办法

原创天空 admin 3095次浏览 已收录 0个评论

ecshop 2.7.3 gbk版官方版本安装之后,当我们推荐某个产品的时候,“我的推荐”中的效果出现乱码。

如图所示,非常让人恼火。
打开源码

可以看到都是乱码。
http://www.maiseed.com/affiliate … gid=60&u=367&type=1
经过一番追查,这个文件就是我们的效果源代码,单独打开这个链接看看。

中文乱码,那么可以确认就是这类出现问题了,我们查看一下这个页面的编码。

果然不出所料,这个页面的编码是utf-8,那中文肯定乱码了啊。
这就说明affiliate.php输出这段代码的时候,header头部的编码是utf-8,而不是gbk。
解决这个问题就好了。
解决办法:
首先把这个文件保存为gbk编码的。
第二步,
在约31行
if ( $display_mode == ‘javascript’ )
{
$charset_array=array(‘UTF8′,’GBK’,’gbk’,’utf8′,’GB2312′,’gb2312′);
if(!in_array($charset,$charset_array))
{
$charset=’UTF8′;
}
header(‘content-type: application/x-javascript; charset=’ . ($charset == ‘UTF8’ ? ‘utf-8′ : $charset));
}
从这段代码的意思可以看出当$charset的值不在$charset_array这个数组的时候$charset就为UTF8;从代码来看应当是没问题,在这里$charset应当是gbk,但是不知为何程序没有这样判断,程序认为$charset的值不在这个数组里面,所以$charset=’UTF8’;所以就出现了我们这个乱码的问题,那么解决办法也就简单了,本来我们就是gbk版本,所以我们修改UTF8为gbk就可以了。即把上面代码修改为
if ( $display_mode == ‘javascript’ )
{
$charset_array=array(‘UTF8′,’GBK’,’gbk’,’utf8′,’GB2312′,’gb2312′);
if(!in_array($charset,$charset_array))
{
$charset=’gbk’;
}
header(‘content-type: application/x-javascript; charset=’ . ($charset == ‘UTF8’ ? ‘utf-8’ : $charset));
}
这样我们的header就能获得charset=gbk的值了,我们问题也就解决了。


金刀客博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明ecshop 2.7.3 gbk版“我的推荐”中效果出现乱码的解决办法
喜欢 (1)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到