htmlentities返回空字符串

Tom*_*Tom 21 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>
Run Code Online (Sandbox Code Playgroud)

jgr*_*eep 34

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

$text = htmlentities(mb_convert_encoding($text, 'UTF-8', 'ASCII'), ENT_SUBSTITUTE, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

  • `$ text = htmlentities(utf8_encode($ text));`也有效. (3认同)

Hal*_*yon 7

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