Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示某种撇号(当前显示为菱形)_Php_Html_Character Encoding - Fatal编程技术网

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),但运气不佳。字符在不同的

我的数据库中的某些行包含一个撇号,当用PHP显示时,它会转换为中间带问号的菱形。例如,如果复制正确:
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,似乎将撇号显示为
,但我不知道他们是怎么把它转换成的?