我的数据库中的某些行包含各种撇号,当使用PHP显示时,会转换为带有问号的菱形。例如,如果它正确复制:Captain Jim O’Brien
这些“撇号”最有可能通过TinyMCE插入,用户可能正在从Word复制和粘贴,或者可能是Mac计算机中的某些内容。
如何显示这些“撇号”?当我在PHPMyAdmin中查看行时,会显示撇号(没有菱形),因此显然有一种方法。
我的字符编码设置为UTF-8,我尝试了htmlspecialchars($string)
和htmlentities($string)
,但没有运气。
答案 0 :(得分:2)
字符在不同的地方编码。
MySQL具有特定的字符编码。默认情况下,不是 UTF-8,而是latin1。
使用PHP生成的HTML文档也具有指定的特定字符编码。最后,HTML文档中的实际字节实际上假定了特定的字符编码,如果您不小心,则可能与您为文档指定的字符编码不同。
确认您的MySQL编码设置为UTF-8作为第一步。请注意,MySQL可以在每个表甚至每个列的基础上覆盖数据库的默认字符编码。
您可能对此相关帖子感兴趣,以便更深入地了解字符编码
Character Encoding and the ’ Issue
<强>更新强>
首先将数据放入MySQL数据库。也许那是&#34;某事&#34;没有使用UTF-8编码。