肖飞教你在MYSQL5.5只支持utf8环境下正常使用GBK网站
2010/07/07 15:18 ArthurXF
我们公司新配置了一台服务器,使用的MYSQL5.5,当时并没考虑到会有GBK的网站放上来,本来UTF8网站都运行正常,后来有两台服务器合并,把老服务器拿回来了,老服务器上的网站全部放到新服务器上,这样就麻烦大了。老网站大量使用的是GBK版本,在新服务器上全部乱码。
执行时还会报GBK字符集不支持的错误,查看了一下字符集,MYSQL5.5确实默认情况下不支持GBK,那只好重新装了。
把MYSQL,deinstall后,执行make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_COLLATION=gbk_chinese_ci BUILD_STATIC=yes install clean安装完成。重启后,不再报错了,但是读取出来的数据全部乱码,转成utf8浏览时正常。
程序中加入set names gbk,仍然乱码。试了N种都没解决。
最后把数据库拉下来,全部替换成utf8的字符集并转为utf8保存文件。上传服务器之后,程序设定set names gbk,就可以正常显示了。
估计问题在于MYSQL5.5还是以utf8或者是我们卸载不干净,反正最底层还是以utf8为准,GBK的数据在MYSQL5.5里就是乱码,当我们转数据为UTF8的时候,MYSQL5.5认了编码,程序上设定显示按照GBK,MYSQL会自动将utf8转码为GBK显示。这样就正常了。
我肖飞将我的经历奉贤给大家,希望大家少走弯路!
执行时还会报GBK字符集不支持的错误,查看了一下字符集,MYSQL5.5确实默认情况下不支持GBK,那只好重新装了。
把MYSQL,deinstall后,执行make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_COLLATION=gbk_chinese_ci BUILD_STATIC=yes install clean安装完成。重启后,不再报错了,但是读取出来的数据全部乱码,转成utf8浏览时正常。
程序中加入set names gbk,仍然乱码。试了N种都没解决。
最后把数据库拉下来,全部替换成utf8的字符集并转为utf8保存文件。上传服务器之后,程序设定set names gbk,就可以正常显示了。
估计问题在于MYSQL5.5还是以utf8或者是我们卸载不干净,反正最底层还是以utf8为准,GBK的数据在MYSQL5.5里就是乱码,当我们转数据为UTF8的时候,MYSQL5.5认了编码,程序上设定显示按照GBK,MYSQL会自动将utf8转码为GBK显示。这样就正常了。
我肖飞将我的经历奉贤给大家,希望大家少走弯路!