相信朋友已经看了Discuz!4.0及以上版本由UTF8转GBK的详细教程
但经本人测试发现该方法根本转换成功几率太低乱码经常出现现在我把我转换的经过帖出来希望能给朋友带来帮助!
其实UFT8转换用该方法很简单:
在database.inc.php中加一句就可以强制导出为GBK了
找- ($db->version() > '4.1' && $dbcharset != 'utf8' ? " <input class="radio" type="radio" name="sqlcharset" value='utf8'> UTF-8</option>" : '');
复制代码 替换为- ($db->version() > '4.1' && $dbcharset != 'utf8' ? " <input class="radio" type="radio" name="sqlcharset" value='utf8'> UTF-8</option>" : '').
- ($db->version() > '4.1' && $dbcharset != 'gbk' ? " <input class="radio" type="radio" name="sqlcharset" value='gbk'> GBK</option>" : '');
复制代码 到备份数据后台就会发现多了个强制备份为GBK的选项!
接下来不用我教你们怎么做吧!
了解你的新空间的数据库版本选择对应的选项行了!
注意:
一定要选择全部备份
一般来说转换后会出现以下几个错误!
SQL: SET NAMES 'gbk'
Error: Unknown system variable 'NAMES'
Errno.: 1193
解决方法:
1、删除SET NAMES 'gbk'
2、找到ENGINE=MYISAM DEFAULT CHARSET=gbk,替换为:TYPE=MYISAM
3、找到ENGINE=HEAP DEFAULT CHARSET=gbk,替换为:TYPE=HEAP
4、character set gbk collate gbk_bin,删除。
5、重新恢复即可。
注意,一定要用记事本打开,第4条不一定是gbk,搜索collate试一下找到相似的
还有替换的时候一定要选择全部替换否则还是会出错! |