使用 UTF-8 版本循环遍历 MySQL 数据库更改撇号

Loop through MySQL database changing apostrophes with UTF-8 version

我的网站 + 数据库遇到了一些问题,内容是使用 java 应用程序使用一些未知字符集添加到数据库中的,它们使用 UTF 在 PHP/HTML 中显示-8 <meta charset='UTF-8'> 但我收到一堆菱形问号。

我试过更改字符集并使用 htmlentities 函数,但运气不佳。我想知道是否可以遍历数据库 table 删除某些字符(旧撇号)的所有实例并将其替换为 utf-8(撇号)版本?

我还将数据库字符集设置为 utf-8。这只是我遇到麻烦的旧内容。

旧撇号:'

所需的撇号:'

您需要为每个 table 编写一个查询,如下所示:

UPDATE table1
SET field1 = replace(field1, "’", "'"),
field2 = replace(field2, "’", "'")
etc.

旧内容是使用非 UTF8 字符集添加到数据库中的,这就是它显示为 � 的原因。不幸的是,不可能进行彻底的修复,因为所有符号都不能很好地音译为 UTF8。您可能只想更新您找到的那些,例如撇号 。您可能还会找到有用的信息 here

编辑:我提到的更新就像 Ben 的查询