Php htmlentities返回空字符串
下面的代码输出一个空字符串。原因是$text中的“ó”,但为什么?utf-8编码什么字符 当使用iso-8859-1时,问题得到了解决,但我需要使用utf-8,那么我做错了什么Php htmlentities返回空字符串,php,html-entities,Php,Html Entities,下面的代码输出一个空字符串。原因是$text中的“ó”,但为什么?utf-8编码什么字符 当使用iso-8859-1时,问题得到了解决,但我需要使用utf-8,那么我做错了什么 <!doctype html> <head> <meta charset="utf-8"> </head> <body> <? $text = 'Hola ó Hola'; $text = htmlentities($text,ENT_QUOTES,
<!doctype html>
<head>
<meta charset="utf-8">
</head>
<body>
<?
$text = 'Hola ó Hola';
$text = htmlentities($text,ENT_QUOTES,'utf-8');
echo $text;
?>
</body>
</html>
如果源文件包含字符串,请确保将其保存为UTf-8。否则,请确保提供字符串的任何内容都以UTF-8的形式提供它。我遇到了类似的问题,并使用了标记ENT\U替换来防止空字符串。它仍然没有编码,而且我不能依赖文件是UTF-8,所以我只转换了字符串编码:
$text = htmlentities(mb_convert_encoding($text, 'UTF-8', 'ASCII'), ENT_SUBSTITUTE, "UTF-8");
New>另存为..
输入文件名(空白一段时间),然后键入selectPHP超文本…
奇怪,你的代码在我的电脑上似乎运行得很好。(返回
ó;
)-我唯一更改的是更改我想我可能是将文件保存在错误的字符集中了?有可能吗?如果文本的来源是一篇$\u文章呢?我从哪里获得字符集编码?如果POST
请求来自同一网站上发出utf-8
meta字符集的表单,您可以假设输入字符集也将是utf-8
(您的浏览器应该遵守发出的任何字符集标题,但用户可以自行决定不这样做)。我想您可以尝试一些PHP函数,看看PHP认为字符集是什么;像iconv\u get\u encoding
但是我使用它的成功率参差不齐。谢谢。是否有任何资源/指南可以帮助我更好地理解字符集?我只是被这么多的字符集弄糊涂了:上的字符集,MySQL排序规则上的字符集,保存文件的字符集。这把我弄糊涂了:坑真的很简单。始终对所有内容使用utf-8
。源文件,MySQL名称
who shebang。但是,是的,你必须始终明确你想要的是utf-8
,因为出于某种奇怪的原因,它不是默认值。问题是,据我所知,我什么都用utf-8,但有些东西没有被编码!我怎样才能亲自联系你,以便解释我的错误这是一个对我有用的选项,因为字符串不是空的,但它没有显示特殊字符,这些字符只是从字符串中省略了。有没有关于如何让这些特别的角色出现的想法?在我的例子中,它是一个项目符号,从旧数据库读入代码>也可以工作。