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 & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>