我最近偶然发现了一个使用 Latin1 编码的 MySQL 数据库,并且在浏览器问号符号上查看时正在呈现。为了解决这个问题,我们将所有表上的 DB 编码更改为 utf8,将排序规则更改为 utf8_general_ci,但是已经存储的数据仍然显示有问号,所有从 mysql 到浏览器的数据存储和轮询由 php 完成,我确保在 php 上也使用了 utf8,甚至按照网上很多人的建议运行了 set names utf8,问题是现在我在我们知道没有的字符串上得到了奇怪的字符,例如 ÃÂ' .
数据示例
存储:
EMMANUEL PE\xc3\u0192\xc2\u2018A GOMEZ 葡萄牙
渲染:
EMMANUEL PEÃÂ'A GOMEZ 葡萄牙
恰当的:
伊曼纽尔·皮亚·戈麦斯 葡萄牙
存储:
Luis Hern\xe1ndez-Higareda
渲染:
路易斯·埃尔南德斯-希加雷达
恰当的:
路易斯·埃尔南德斯-希加雷达
存储:
Teresa de Jes\xc3\u0192\xc2\xbas 加利西亚 G\xc3\u0192\xc2\xb3mez
渲染:
Teresa de Jesús 加利西亚 Gómez
恰当的:
特蕾莎·德·赫苏斯·加利西亚·戈麦斯
存储:
博士。JOS\xc3\u0192\xc2\u2030 ABEN\xc3\u0192\xc2\x81MAR RIC\xc3\u0192\xc2\x81RDEZ GARC\xc3\u0192\xc2\x8dA
恰当的:
博士。JOSÉ ABENÃÂMAR RICÃÂRDEZ GARCÃÂA
目前我正在使用 python 从数据库中获取数据,我正在尝试标准化为 unicode utf8 但我真的迷路了,就我到这里而言,我需要转换当前显示的内容很奇怪字符转换为可读文本,如上所示。
我在这里想念什么?数据是不可修复的吗?
功能 https://gist.github.com/2649463
注意: 在所有示例中,有 1 个是正确渲染的(如果有任何关于如何解决此问题的建议,请考虑是否存在)