使用 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 的查询
我的网站 + 数据库遇到了一些问题,内容是使用 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 的查询