以下代码输出一个空字符串。原因是$ 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>
答案 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)
New > Save As..
输入文件名(空白一会儿),然后在类型中选择PHP Hypertext ...