htmlentities返回空字符串

时间:2011-12-09 02:35:29

标签: 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,'utf-8');
echo $text;
?>
</body>
</html>

3 个答案:

答案 0 :(得分:32)

我有类似的问题,并使用标志ENT_SUBSTITUTE来防止空字符串。它仍然没有编码,我不能依赖于UTF-8文件,所以我只对字符串转换了编码:

$text = htmlentities(mb_convert_encoding($text, 'UTF-8', 'ASCII'), ENT_SUBSTITUTE, "UTF-8");

答案 1 :(得分:7)

如果源文件包含字符串,请确保将其保存为UTf-8。否则,确保提供字符串的任何内容都将其提供为UTF-8。

答案 2 :(得分:0)

  1. 打开代码编辑器(例如notepad ++或其他)。
  2. 点击New > Save As..输入文件名(空白一会儿),然后在类型中选择PHP Hypertext ...
  3. 现在复制原始文件的所有内容并输入此新文件。
  4. 点击保存并尝试。