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

时间:2015-07-21 00:41:09

标签: php mysql encoding utf-8 character-encoding

我的网站+数据库遇到了一些问题,使用java应用程序使用一些未知的字符集将内容添加到数据库中,并使用UTF-8 {{1}以PHP / HTML格式显示内容但我得到一堆钻石形状的问号。

我尝试过更改charsets并使用htmlentities功能,但我没有太多运气。我想知道是否有可能循环通过数据库表删除某些字符(旧撇号)的所有实例并将其替换为utf-8(撇号)版本?

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

老撇号:'

所需的撇号:'

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

使用非UTF8字符集将旧内容添加到数据库中,这就是为什么它显示为 。不幸的是,由于所有符号都不能很好地音译为UTF8,因此无法彻底修复。您可能只想简单地更新您发现的那些,如使用者。您还可以找到有用的信息here

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