下面的代码输出一个空字符串。原因是$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>
发布于 2011-12-09 10:37:26
如果源文件包含该字符串,请确保将其另存为UTf-8。否则,请确保提供字符串的任何内容都将其作为UTF-8提供。
发布于 2015-07-30 00:24:25
我遇到了类似的问题,并使用标志ENT_SUBSTITUTE来防止出现空字符串。它仍然没有编码,我不能相信文件是UTF-8,所以我只对字符串进行了编码:
$text = htmlentities(mb_convert_encoding($text, 'UTF-8', 'ASCII'), ENT_SUBSTITUTE, "UTF-8");
发布于 2022-02-21 09:37:33
只是为那些可能和我有类似问题的人做评论。包含特殊字符的$var。此…
<?= htmlentities($var) ?>
…给了我一个空输出,而…
<?php echo htmlentities($var); ?>
…工作得很好。htmlspecialchars也是如此。以前从来没有遇到过这种情况,因为我通常不会那样使用它,但在这里我只是在测试一些东西。
https://stackoverflow.com/questions/8440364
复制相似问题