php5.3以上版本htmlspecialchars中文为空

htmlspecialchars作用是把预定义的字符 “<” (小于)和 “>” (大于)转换为 HTML 实体:

php5.3以上版本中htmlspecialchars默认变成utf-8!中文使用这个函数就输出为空白了。

只有指定参数给它:$str = htmlspecialchars($str, ENT_COMPAT ,‘GB2312’);

不为何使用GBK是不可以的,只有使用GB2312才会输出。

附带:

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // 不转换任何引号
?>

以上代码的 HTML 输出如下(查看源代码):

<!DOCTYPE html>
<html>
<body>
Bill &amp; 'Steve'<br>
Bill &amp; &#039;Steve&#039;<br>
Bill &amp; 'Steve'
</body>
</html>
此条目发表在开源代码分类目录,贴了标签。将固定链接加入收藏夹。

发表评论