PHP htmlentities()无法按预期工作

时间:2011-12-08 17:17:23

标签: php character-encoding special-characters html-entities

我遇到了htmlentities()

的问题
$txt = "árbol";
echo $txt; // outputs: árbol
echo htmlentities($txt); // outputs: árbol (árbol)

第二个回音应输出árbol(& aacute;)

我正在使用utf-8:

<meta charset="utf-8">

发生了什么事?谢谢!

1 个答案:

答案 0 :(得分:3)

您必须设置htmlentities()的第三个参数,告诉charset使用。由于您未设置,因此使用默认值,默认值为ISO-8859-1,而不是UTF-8。

  

与htmlspecialchars()一样,它采用可选的第三个参数charset来定义转换中使用的字符集。目前,ISO-8859-1字符集用作默认值。

只是为了澄清,这是函数签名:

string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $charset [, bool $double_encode = true ]]] )

在这里,您将找到官方文档:http://php.net/manual/en/function.htmlentities.php