我浏览了很多类似的问题,但没有找到解决方案。我有一个从 HTML 页面创建的大型数据库(其中一开始就包含错误字符)。
所以我在我的数据库中看到了很多这样的东西:
â?¦
á¹£
Ä?
<小时/>
sÄ?mainÅ should be sēmainō
â??“ should be —
yaá¹£ar should be yaṣar
Ä?n should be ēn
psÄ?laphaÅ should be psēlaphaō
anaggellÅ should be Anaggellō
还有很多很多其他的。我已将表设置为 utf8_general_ci,但似乎这些字符现在是“硬编码”的,并且对字符集的任何困惑都不会产生任何影响。也许我错了?
解决这个问题最可行的方法是什么?我认为运行一堆查找替换会起作用。确实如此,但我意识到有许多不同的损坏字符。
主要是英语,但也有一些希腊语和希伯来语单词。
最佳答案
编码似乎太糟糕了,以单向方式将其从一种编码转换为另一种编码可能会非常困难(如果不是不可能的话)。一个简单的嵌套查找和替换可能会更快地完成这项工作:
UPDATE `table`
SET `table`.`string` = SELECT REPLACE(REPLACE(REPLACE(REPLACE(`table`.`string`, 'á¹£', 'ṣ'), 'â??“', '—'), 'Ä?', 'ē'), 'Å', 'ō')
关于php - 修复 MySQL UTF-8 字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26939475/