我有一个MySQL表&所有字段都设置为UTF-8。问题是,之前负责编写数据库的PHP脚本使用了其他一些编码,不确定它是在脚本本身、MySQL连接中还是在其他地方。结果是,尽管表和字段被设置为UTF-8,但我们看到的是错误的字符,而不是中文。看起来是这样的:

现在,由于某种原因,以前的脚本(负责编写并损坏数据)可以很好地读取它,但我的新脚本都是用UTF-8编码的,显示的字符类似1/2©。如何解决这个问题呢?
发布于 2012-03-28 19:32:29
听起来,您有一个utf8列,但是您正在使用latin1连接对它进行写入和读取,因此实际存储在表中的内容是错误编码的。您的问题是,当您使用utf8连接从表中读取数据时,您会看到实际存储在那里的数据,这就是为什么它看起来是错误的。您可以通过转换为latin1,然后通过二进制字符集返回到utf8来修复表中错误编码的数据(总共三个步骤)。
发布于 2012-05-22 19:35:44
原始数据库使用的是中文编码- GB-18030或类似的编码,而不是UTF1,而组成这些字符的字节,当以-8显示时,显示为一堆拉丁文变音符号。读取GB-18030格式的每个字符串,将其转换为UTF-8,然后保存。
https://stackoverflow.com/questions/9905454
复制相似问题