Php 显示某种撇号(当前显示为菱形)
我的数据库中的某些行包含一个撇号,当用PHP显示时,它会转换为中间带问号的菱形。例如,如果复制正确:Php 显示某种撇号(当前显示为菱形),php,html,character-encoding,Php,Html,Character Encoding,我的数据库中的某些行包含一个撇号,当用PHP显示时,它会转换为中间带问号的菱形。例如,如果复制正确:Jim O'Brien船长 这些“撇号”很可能是通过TinyMCE插入的,用户在TinyMCE中复制和粘贴Word或Mac电脑上的内容 如何显示这些“撇号”?当我在PHPMyAdmin中查看该行时,会显示撇号(没有菱形),因此显然有一种方法 我的字符编码设置为UTF-8,我尝试了htmlspecialchars($string)和htmlentities($string),但运气不佳。字符在不同的
Jim O'Brien船长
这些“撇号”很可能是通过TinyMCE插入的,用户在TinyMCE中复制和粘贴Word或Mac电脑上的内容
如何显示这些“撇号”?当我在PHPMyAdmin中查看该行时,会显示撇号(没有菱形),因此显然有一种方法
我的字符编码设置为UTF-8,我尝试了
htmlspecialchars($string)
和htmlentities($string)
,但运气不佳。字符在不同的位置编码
MySQL有一种特殊的字符编码。默认情况下,它不是UTF-8,而是latin1
使用PHP生成的HTML文档还指定了特定的字符编码。最后,HTML文档中的实际字节实际上采用了一种特定的字符编码,如果不小心,这种编码可能与为文档指定的字符编码不同
第一步,验证MySQL编码是否设置为UTF-8。请注意,MySQL可以在每个表甚至每个列的基础上覆盖数据库的默认字符编码
你可能会对这篇相关的文章感兴趣,以便更深入地理解字符编码
更新
有些东西首先将数据放入MySQL数据库。也许“某物”没有使用UTF-8编码。您是否尝试过
htmlentities($string,entu引号,'UTF-8')代码>?使用字符编码时,应始终指定编码方式(UTF8等)您正在使用-如果您还没有使用的话。@newfurnity,当名称包含无效撇号时,它实际上会显示一个空白名称。这可能会帮助您:@newfurnity它显示为空白,因为它实际上抛出了一个无效的多字节序列
错误。表的MySQL排序规则:utf8\u general\u ci
。HTML文档已设置排序规则不同于字符编码。检查编码(尽管如果排序规则是基于utf8的,则编码可能是utf8)也。。。当您在正确显示撇号的页面上查看源代码时,您在PHPMyAdmin中看到的编码是什么?是UTF8还是别的什么?使用显示变量,如“character\u set\u database”代码>,我懂拉丁语1。因此,我意识到我可能需要将数据库的编码更改为UTF-8。也就是说,PHPMyAdmin在不改变数据库的情况下显示了它。源代码显示,他们正在将内容类型设置为UTF8PHPMyAdmin,似乎将撇号显示为代码>,但我不知道他们是怎么把它转换成的?