1

我的数据库中的某些行包含各种撇号,当使用 PHP 显示时,它会转换为中心带有问号的菱形。例如,如果它正确复制:Captain Jim O’Brien

这些“撇号”很可能是通过 TinyMCE 插入的,用户从 Word 或 Mac 计算机中复制和粘贴。

如何显示这些“撇号”?当我在 PHPMyAdmin 中查看该行时,会显示撇号(没有菱形),所以显然有一种方法。

我的字符编码设置为 UTF-8,我试过htmlspecialchars($string)and htmlentities($string),但没有运气。

4

1 回答 1

2

字符在不同的地方编码。

MySQL 具有特定的字符编码。默认情况下,它不是UTF-8,而是 latin1。

您使用 PHP 生成的 HTML 文档还指定了特定的字符编码。最后,HTML 文档中的实际字节实际上假定了特定的字符编码,如果您不小心,它可能与您为文档指定的字符编码不同。

第一步,确认您的 MySQL 编码设置为 UTF-8。请注意,MySQL 可以在每个表甚至每个列的基础上覆盖数据库的默认字符编码。

您可能对这篇相关文章感兴趣,以更深入地了解字符编码

字符编码和问题

更新

首先将数据放入 MySQL 数据库。也许那个“东西”没有使用 UTF-8 编码。

于 2012-07-24T16:10:11.733 回答