ECSHOP文件和数据库 UTF-8转成GBK、GBK转成UTF-8方法,亲测无报错
老杨亲测无误,测试环境:
Apache Web Server Version 2.2.8
PHP Script Language Version 5.2.6
MySQL Database Version 5.0.51b
另外,老杨将在14年的一季度上线使用老杨版EC框架的高端模板,期待关注。
1、下载帝国备份工具,复制upload到网站根目下,将数据库全部备份,如果你要将UTF8转成GBK,备份时选择GBK即可,反之则选则UTF-8
2、下载51EC转码工具,将文件全部转为你想要的格式,生成后打开data/config.php
修改:define('EC_CHARSET','utf-8');为你想要的格式,如果想改成GBK,则修改为:
define('EC_CHARSET','gbk');
3、进入生成的新格式EC源文件 下的帝国备份,恢复备份的数据库
4、老杨测试时,清空缓存后报错
Notice: unserialize() [function.unserialize]: Error at offset 43 of 115 byte ……
解决方法:
打开includes/lib_common.php
找到:
- $arr['invoice_type'] = emptyempty($arr['invoice_type']) ? array('type' => array(), 'rate' => array()) : unserialize($arr['invoice_type']);
修改为:
- $arr['invoice_type'] = emptyempty($arr['invoice_type']) ? array('type' => array(), 'rate' => array()) : unserialize(preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $arr['invoice_type'] ));
然后大功告成。