html:
<form action="index.php" method="post">
<p>
<input type="text" id="email" name="email" size="20" maxlength="40"/>
</p>
<p><input type="submit" value="提交"/></p>
</form>index.php:
$email = htmlentities($_POST['email'], GB2312);
echo $email . '<br />';为什么输入简体中文会显示空白?

解决方案 »

  1.   

    $email = htmlentities($_POST['email'], GB2312);
    首先 htmlentities() 的第二个参数是指定过滤规则,不是编码方式
    其次 GB2312 只能是以一个字符串传入,而你的写法会让解释器认为这是一个常量,然而事实是没有这个常量,产生错误,程序终止,并且由于你关闭了错误提示,所以未能显示出来。$email = htmlentities($_POST['email'], ENT_QUOTES, 'GB2312');
      

  2.   

    你的表单页面不指定gbk,浏览器会自己决定一个编码提交数据,你看着办吧。
      

  3.   

    GB2312也一样支持汉字,而且应该说是国标。没能显示汉字那是因为你的代码中 htmlentities() 设定了不符合实际编码的参数。并且你完全可以不去填第三个参数,它是可选的。
    你最好先确定一种编码,GB2312或者UTF-8等等,然后所有前端后端页面以及数据库都照此编码,就不会再出现乱码问题了