关于解决zencart乱码的措施

zencart安装的时候使用的是iso-8859-1为默认字符集,如果在默认安装下输入中文将会乱码一片。


最好的办法是修改zencart的字符集配置,使用utf-8为其默认字符集。

有2个地方需要修改,一个是购物车的的默认字符集,一个是控制台的字符集。

includes/languages/english.php在这个文件中includes/languages/english.php的50行

修改 define(’CHARSET’, ‘iso-8859-1′);
为define(’CHARSET’, ‘utf-8′);

admin/includes/languages/french.php在admin/includes/languages/french.php文件的63行。

将define(’CHARSET’, ‘iso-8859-1′);
改为define(’CHARSET’, ‘utf-8′);

这个文件主要是指定控制台所使用的文件的字符集。

修改上述2个文件以后,zencart的购物车所有页面将会使用UTF8,但是如果用phpmyadmin查看数据库,将会看到乱码。

这是因为zencart没有指定utf8为数据库连接的默认字符集。

需要修改 includes\classes\db\mysql 目录下的 query_factory.php 文件,找到下面的内容:
if (@mysql_select_db($zf_database, $this->link)) {
$this->db_connected = true;
return true;
} else {
$this->set_error(mysql_errno(),mysql_error(), $zp_real);
return false;
}



將其修改成

if (@mysql_select_db($zf_database, $this->link)) {
$this->db_connected = true;

// *** UTF8 Connection Add [BEGIN] ***
mysql_query(”SET NAMES ‘utf8′”, $this->link);
mysql_query(”SET CHARACTER SET UTF8″, $this->link);
// *** UTF8 Connection Add [END] ***

return true;
} else {
$this->set_error(mysql_errno(),mysql_error(), $zp_real);
return false;
}



修改保存后,mysql的连接将会使用utf8,中文资料的处理就不会有问题了,可以使用phpmyadmin确认一下有没有错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值