我的数据库中的某些行包含某种撇号,当使用PHP显示时,这些撇号会转换为中心带有问号的菱形。例如,如果复制正确:Captain Jim O’Brien
这些“撇号”很可能是通过TinyMCE插入的,用户从Word或Mac电脑上复制粘贴。
如何显示这些“撇号”?当我在PHPMyAdmin中查看行时,显示的是撇号(没有菱形),因此显然有一种方法。
我的字符编码设置为UTF-8,我尝试过htmlspecialchars($string)和htmlentities($string),但没有成功。
发布于 2012-07-25 00:10:12
字符编码在不同的位置。
MySQL有一种特殊的字符编码。默认情况下,它不是UTF-8,而是latin1。
使用PHP生成的HTML文档也指定了特定的字符编码。最后,HTML文档中的实际字节实际上假定了一种特殊的字符编码,如果您不小心的话,它可能与您为文档指定的字符编码不同。
作为第一步,验证您的MySQL编码是否设置为UTF8。请注意,MySQL可以在每个表甚至每个列的基础上覆盖数据库的默认字符编码。
您可能会对这篇相关文章感兴趣,以便对字符编码有更深入的了解
Character Encoding and the ’ Issue
更新
有些东西首先将数据放入MySQL数据库中。也许这个“东西”并没有使用UTF-8编码。
https://stackoverflow.com/questions/11634892
复制相似问题