Php 不转换特殊字符的html实体

Php 不转换特殊字符的html实体,php,character,html-entities,Php,Character,Html Entities,我使用的是htmlentities,它可以转换带有重音的字符,但不能转换这种类型的引号”。相反,浏览器显示了一个带有问号的奇怪符号� 如何转换这些显示为符号的字符? e、 这本书叫做�你好,颜色� 在桌子上 我尝试过这个命令,但不起作用: htmlentities($message); htmlentities($message, ENT_QUOTES, 'UTF-8'); htmlentities($message, ENT_NOQUOTES, 'UTF-8'); htmlentities($

我使用的是htmlentities,它可以转换带有重音的字符,但不能转换这种类型的引号”。相反,浏览器显示了一个带有问号的奇怪符号�

如何转换这些显示为符号的字符? e、 这本书叫做�你好,颜色� 在桌子上

我尝试过这个命令,但不起作用:

htmlentities($message);
htmlentities($message, ENT_QUOTES, 'UTF-8');
htmlentities($message, ENT_NOQUOTES, 'UTF-8');
htmlentities($message, ENT_COMPAT, 'UTF-8');
多谢各位


我刚刚意识到了一些奇怪的事情,如果我做了下面的事情

echo $message; die(); 
要显示用于调试的白色页面,将显示引号!
那么发生了什么?为什么它没有在网站页面中正确显示?:s

看起来您的浏览器中缺少字符集规范

尝试在你的网页标题部分添加
这个。我以前遇到过这样一个问题,在UTF-8中显示多语言文本,我也这样做来解决这个问题

希望这有帮助

顺便说一句

对于HTML5
有效

对于HTML4

<meta http-equiv="Content-type" content="text/html;charset=UTF-8">

通过删除现有的字符集utf-8声明。

尝试以下代码,它对我有效:

<?php
$message = "“Hello Colors“";
$message = iconv('UTF-8', 'ASCII//TRANSLIT', $message);
echo htmlentities($message);
?>

你的网页标题中有这个吗?我想你错过了浏览器中的字符集规范,我发布的任何方式都是一样的,因为我确信你有F8_编码($message);?我有,它仍然显示那些引号的符号。这“�" 意味着您试图将数据显示为UTF-8,而实际上不是UTF-8。因此,@RobertRozas是正确的,请使用
utf8\u编码($message)
first我有,但它仍然显示了这些符号quotes@Snitram好的,如果您使用的是linux,您是否可以尝试准备一个带有htmlentities函数的示例脚本和一个示例字符串。然后运行该脚本并查看它的呈现效果。这是为了确保htmlentities是否正在执行其工作,我使用windows microsoft IIS作为eb server.htmlentities可以工作,因为它可以转换带有像ùáì这样口音的字符,但它不能转换引号“好吧,那么你可以看看这篇文章,在这里发布它有一些类似问题的解决方案。我刚刚意识到一些奇怪的事情,如果我做下面的echo$message;die();要显示用于调试的白色页面,将显示引号!那么您认为发生了什么事?:S
header('Content-Type: text/html; charset=iso-8859-1'); 
<?php
$message = "“Hello Colors“";
$message = iconv('UTF-8', 'ASCII//TRANSLIT', $message);
echo htmlentities($message);
?>
&quot;Hello Colors&quot;