PHP:utf-8编码,htmlentities给出了奇怪的结果

时间:2011-07-01 07:49:54

标签: php html utf-8

我正在尝试从POST表单中获取数据。当用户输入"habláis"时,它会在视图源中显示为"habláis"。我想将其转换为"habláis"以进行字符串比较,但utf8_encode()htmlentities()输出habláis,而htmlspecialchars()不执行任何操作。我会使用str_replace,但在搜索字符串时它不会识别á。

我正在跨页面使用utf-8的字符集。知道发生了什么事吗?

2 个答案:

答案 0 :(得分:4)

您可能没有将UTF-8指定为htmlentities()操作的字符集。

答案 1 :(得分:3)

我不确定这是不是您的问题,但您是否使用UTF-8参数调用htmlentities?我问,因为那不是它的默认值:

  

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

所以你可能想尝试这样调用你的函数:

$output = htmlentities($input, ENT_COMPAT, 'UTF-8');

这会解决您的问题吗?