PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空的问题
2013-10-09 17:15
549 查看
PHP 5.4.3 环境中测试了一个在 PHP 5.2 环境下运行正常的程序,却发现本应正常提交一个中文字符串到数据库的代码却提交了一个空字符串,经过排查,该字符串在经 htmlspecialchars 函数转义之前正常,而在转义之后却变成了空字符串。调用例子如下:
遂查看PHP手册,获知 htmlspecialchars 函数原型如下:
更新日志里面又有提到:
PHP 从 5.4.0 版本开始第三个参数字符串编码的默认值改成了 UTF-8,而我这段代码中的中文编码正好是 GB2312 编码的,跟现在的默认参数不一致,于是更改调用参数如下:
这样,“中文字符串”就可以正常显示了。为了使 PHP 5.4 之前环境中编写的代码能够向前兼容,建议调用 htmlspecialchars 函数的的时候都提供字符串编码参数。
转自:http://lodar.net/chinese-string-become-empty-after-htmlspecialchars-converted-in-php-5-4/
$str = '中文字符串' ; |
$str_converted =htmlspecialchars( $str ); |
echo $str_converted ; |
string htmlspecialchars ( string $string [, int $flags =ENT_COMPAT | ENT_HTML401 [, string $encoding ='UTF-8' [, bool $double_encode =true ]]] ) |
5.4.0 The default value for the encoding parameter was changed to UTF-8. |
5.4.0 The constants ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added. |
$str = '中文字符串' ; |
# 为了与旧环境兼容,这里第二个参数没有组合使用 PHP 5.4 新加入的 ENT_HTML401 常量 |
$str_converted =htmlspecialchars( $str , ENT_COMPAT , 'GB2312' ); |
echo $str_converted ; |
转自:http://lodar.net/chinese-string-become-empty-after-htmlspecialchars-converted-in-php-5-4/
相关文章推荐
- PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空的问题
- PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题
- PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题
- PHP 5.4 已废弃 magic_quotes_gpc,PHP安全转义函数详解(addslashes 、htmlspecialchars、htmlentities、mysql_real_escape_string、strip_tags)
- php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
- php5.4后htmlspecialchars输出为空的问题
- PHP5.4及PHP5.5关于htmlspecialchars输出为空的问题
- php5.4后htmlspecialchars输出为空的问题
- js把预定义的html字符串转换为 HTML 实体 htmlspecialchars 输出html实体内容包括标签,而不自动转义标签,只显示内容,类似php的htmlspecialchars
- php5.4后htmlspecialchars输出为空的问题
- php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
- php5.4中htmlspecialchars中文为空的解决办法
- 都是 htmlspecialchars的错,解决 织梦cms dedecms 标题不能为空 不支持php5.3 php5.4 php5.5版本
- php奇葩错误:htmlspecialchars处理中文丢失
- PHP的转义函数 htmlspecialchars、strip_tags、addslashes解释
- 都是 htmlspecialchars的错,解决 织梦cms dedecms 标题不能为空 不支持php5.3 php5.4 php5.5版本
- 对字符串进行HTML转义:htmlspecialchars与htmlentities
- JS将PHP htmlspecialchars 编码后的字符串解码
- php奇葩错误:htmlspecialchars处理中文丢失
- 关于PHP5.4的htmlspecialchars