关于使用php和mysql出现中文乱码的问题,网上有诸多的讨论。相信能够解决大部分的问题。
我遇到的情况有点特殊:
网站已经在运行,有一定的数据量,原来的文件和程序编码都是用的GBK,数据库用的utf-8,现在要把文件和程序的编码都转换成utf-8.
首先我把所有的文件编码和程序编码都转换成了utf-8,这个过程中没出现什么问题。
然后运行的时候,发现查询出来的数据都成了乱码,整了大半天也没解决。
网页上不是通过数据查询出来的汉字都能正确的显示,所以一定是查询数据的问题。
看到有人说mysql数据的Insert和Select使用的编码是不一样的,而我的程序对这一方面没有做过处理。
试着添加了一条新的纪录,发现查询出来是正常的编码。
偶想原来的文件都是GBK的,提交的数据是不是也存储成了GBK,看phpmyadmin中也都都是乱码。
按照这个思路,我写了个小程序,把含有中文的字段中的字符都转成utf-8,问题解决了,而且在phpmyadmin中看到的也是中文了。
现在把代码贴出来,分享一下: