首 页  >>  E商学院  >>  zencart百科  >>  Zen Cart 乱码 请你走开 二

Zen Cart 乱码 请你走开 二

字号: 小 中 大


继续前文 有时候我们在应用 Zen Cart 时,
本来好好的, 就因为挪了个窝儿, 搬了个家, 他具然就乱码了, 出现这种问题 一般 是由于 新空间数据库 编码与程序配置声明编码不一至 而导致的问题.


这里又分两种情况
第一种情况 是程序配置 文件编码声明缺失或与新空间数据库 编码不相符
对于这种情况的解决相对较容易
也无甚风险
解决方法为 打开 includes/configure.php
文件
查找 define('DB_TYPE', 'mysql');
在其后
define('DB_CHARSET', '');
赋予一个与当前数据库编码一至的编码
define('DB_CHARSET',
'utf8');

这是针对前台乱码的修改
后台 的修改也大同小异 唯一有所区别的是 文件的不同
后台的配置文件为 你的管理目录/includes/configure.php
可能有时候 这两个文件中 并无
define('DB_CHARSET', ''); 这项 ,
这没关系
没有就自己添加上好了 但一定要保持与当前数据库编码一至


说到这里 不得不提一下 Lightinthebox (LB/兰亭) 这个怪胎 ,
在某些目前尚不清楚的情况下, 如果包含LB模板的整站程序
两个配置文件中 没有这项
自己 手动 加上这项时 反到使程序无法正常和数据库通讯, 原因不明!


对于第二种情况, 操作上相对较麻烦些, 同时对大数据库的转换也有一定的风险性,
所以在如此操作前,备份当前数据库是很重要很重要的事儿
这种情况
与 前文 所说的 编码兼容的道理是一样的,

程序声明编码为 某一种 区域性编码 而数据库 为 另一种区域性编码或通用编码(UTF8),
如果两者都是特定的区域性编码,
哪么最终输出页面肯定是一塌糊涂,
即便数据库采用的是UTF8编码 也会因程序所采用的区域性声明编码不兼容而导致乱码,


这时候, 我们要尽可能采用上面说的方法,在程序上作变动,
让程序声明编码尽可能与数据库保持一至, 而不动数据库
但是,
什么事儿就怕有个但是,
如果有时候,一些特殊的原因让我们无法变更程序编码声明的时候,
哪么下面的方法就派上用场了


再一次的提醒 本方法的操作有一定的风险性, 操作前 切记 备份 备份 备份 还是备份!!!!!
本操作的目的是将当前数据库中的全部数据重新转换编码
以达到保持与程序声明编码一至
操作方法为 进入当前的数据库 以当前最有代表性的 PHPMyadmin 的操作为例,


点击上面的 操作 然后往下看 最下面有个 整理 在这里 选择想要转换的编码 (保持与程序配置声明一至)
有点奇怪是吗
这里的编码命名称呼似乎与常见的编码声明名称有点不一样,
没的关系, 当你不能确定两者的关系时, 百度大婶和谷哥大叔 哪有最佳的答案
如果你有足够懒
懒的去查 哪还有更直接的方法可以明了
把鼠标放在你不确定的编码名称上一会儿 然后看小黄条提示 应该就清楚了


选择好后 点击执行 剩下的 就是等待 就可以了,
直到上面 出现一个绿色的 对号 提示 "您的 SQL 语句已成功运行"
至此,你就可以放心的舒一口气了,


然后回到当前数据库操作界面首页 找 MySQL 连接校对 的哪一项 然后这里 选择
与程序配置 声明一至的编码 即可
当然这步 也可以先作 这个没有必然的顺序关系


附一张图: 上面介绍的都是以中文界面来说, 碰上英文界面 各选项 参照下图 就明白了
图中的 Latin1 编码 即为 前文
所述中的 ISO 8859-1 两者实际上是一回事儿






小提示:


PHPMyadmin 默认是多语言 如果当前操作界面为英文,可以在当前数据库首页 Language 选择 中文 -
Chinese simplified
项,就会切换到中文操作界面 这里还可以设置界面皮肤 字体大小 等项 有兴趣的可以自己偿试下



点击次数:1183  发布日期:2013-04-15  【打印此页】  【关闭