htmlentities 返回空字符串

2022-08-30 18:21:11

下面的代码输出一个空字符串。原因是$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>

答案 1

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

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

答案 2

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


推荐