IT技术博客大学习 共学习 共进步

如何在MYSQL5.5只支出utf8环境下正常使用GBK网站

BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog 2010-07-20 09:54:56 浏览 3,702 次

  我们公司新配置了一台服务器,使用的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显示。这样就正常了。

建议继续学习

  1. ORACEL RAC 字符集 (阅读 5,361)
  2. linux下vim的编译以及终端乱码的最终解决方案 (阅读 4,740)
  3. 区分一个包含汉字的字符串是 UTF-8 还是 GBK (阅读 4,040)
  4. oracle查看字符集 修改字符集 (阅读 3,841)
  5. java中文乱码解决之道(一)—–认识字符集 (阅读 3,641)
  6. mysql latin1转utf8 的两种方法 (阅读 3,341)
  7. mysql字符集和校验规则概念小介 (阅读 3,242)
  8. mysql字符集与校验规则的设置 (阅读 3,061)
  9. mysql连接通道中的字符集和校验规则 (阅读 2,941)
  10. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB** (阅读 2,881)