php - 修复 MySQL UTF-8 字符问题

标签 php mysql character-encoding

我浏览了很多类似的问题,但没有找到解决方案。我有一个从 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/

相关文章:

php - 如果数据库发生变化,自动刷新内容

java - 如何保护 Class.forName("com.mysql.jdbc.Driver)?

mysql - sql数据库中的条件

mysql - 从三个表中查询结果时遇到问题

mysql - mysql 索引是否将 UTF-8 转换为 ASCII?

php - 无法在php中显示中文字符

php - 使用 Javascript/jQuery 在 HTML 中进行 SELECT 时需要进行少量修正

php - 如何记录试图进行sql注入(inject)的人

php - 是否可以在 Laravel 的 HTML 电子邮件中包含图像

node.js - Node JS。处理�字符编码