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

Php 使用UTF-8版本在MySQL数据库中循环更改撇号,php,mysql,encoding,utf-8,character-encoding,Php,Mysql,Encoding,Utf 8,Character Encoding,我的网站+数据库遇到了一些问题,内容是使用java应用程序添加到数据库中的,使用了一些未知的字符集,它们使用UTF-8以PHP/HTML显示,但我得到了一堆菱形问号 我尝试过改变字符集并使用htmlentities函数,但运气不太好。我想知道是否有可能在数据库表中循环删除某些字符(旧撇号)的所有实例,并将其替换为utf-8(撇号)版本 我还将数据库字符集设置为utf-8。这只是我遇到麻烦的旧内容 老撇号:' 所需的撇号:“您需要为每个表编写一个查询,如下所示: UPDATE table1 SET

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

我尝试过改变字符集并使用htmlentities函数,但运气不太好。我想知道是否有可能在数据库表中循环删除某些字符(旧撇号)的所有实例,并将其替换为utf-8(撇号)版本

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

老撇号:'


所需的撇号:“

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

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

旧内容是使用非UTF8字符集添加到数据库的,这就是为什么它显示为�. 不幸的是,一个彻底的修复是不可能的,因为所有符号都不能很好地音译为UTF8。您可能只想简单地更新您找到的那些,如“
”。您还可以找到有用的信息


编辑:我提到的更新类似于Ben的查询

那些不是逗号,那些是撇号。逗号是
@ElefantPhace,正如你所看到的,这些东西也让我失去理智:pSounds很好。我无法测试它,因此您可能需要以不同于我在上面发布的方式退出单个引用。例如,如果双引号不起作用,它可能是replace(field1)、、“”、“”)或replace(field1)、“”、“\“”)。