所以,我有一个数据库,我使用 Navicat。我们有一个几年前的简单 PHP 网站,我们已将该网站升级为 UTF8。
我们在网站上有完美处理 UTF8 特殊字符的“活动”,但我们在网站上也有“评论”,单引号和其他特殊字符向我显示�。
数据库通过以下方式转换为 UTF:
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
当我在 Navicat 中查看这两个数据库时,我可以看到两者都是UTF8
和utf8_general_ci
.
当我设计表格时,我可以看到“活动”表格,我可以看到单元格是 mediumText 并使用 UTF8 设置。当我设计“评论”部分时,不工作的单元格是一个 Blob,它没有任何字符编码信息。
我们正在做一个非常基本的 SELECT,然后通过 $vairable[column] 显示。
有谁知道为什么“活动”会与 UTF8 完美配合,而“评论”会出现问题?我们对他们中的任何一个都没有做任何超级花哨的事情。
我曾尝试将 Blob 转换为文本字段,但是当我这样做时,数据库在输出到页面时会自行转义,因此一旦文本中有单引号,它就会切断。
我尝试过诸如 utf8_encode、stripslashes、mysql_real_escape_string、htmlentities、htmlspecialchars 之类的东西,但我不确定它们中的任何一个是否会有所帮助。
谢谢!