关于htmlspecialchars实体字符转码的问题

时间:2021-06-11 06:03:25

php对post过来的数据进行实体字符转码,我的页面编码是gb2312,刚开始是这样:

$post = htmlspecialchars ( $post);

  

取到的$post值为空,但是有时候是好的(中文有时会出问题),不是一直这样。

翻了一下php文档,

The third argument charset defines character set used in conversion. The default character set is ISO-8859-1. Support for this third argument was added in PHP 4.1.0.

会不会是默认编码为iso-8859-1的原因,换成gb2312试一下

$post = htmlspecialchars ( $post, ENT_NOQUOTES, 'gb2312' );

  果然问题解决了。