提交表单,$_post[XX]取得的数据为乱码
时间:2021-07-01 10:21:17
帮助过:17人阅读
提交表单,$_post[XX]获得的数据为乱码
出现问题后,我按网上的说法
在index.php(提交表单的页面)前面加了
在page-1.php(要获取的页面)
加了 header("Content-Type:text/html;charset=GB2312");
$key=$_POST['key']=iconv("UTF-8","gb2312",$_POST["key"]);
结果还是不行。我是菜鸟咯,随便发表意见,反正把问题解决就行!
------解决思路----------------------index.php 首行加上
header("Content-Type:text/html;charset=GB2312");
另外,把php文件也设置为gbk编码
------解决思路----------------------header() 函数向客户端发送原始的 HTTP 报头。
元素可提供有关页面的元信息
关于meta的介绍,我一下说不清楚,看下面的介绍吧
http://www.w3school.com.cn/tags/tag_meta.asp
------解决思路----------------------在index.php(提交表单的页面)前面加了如果这个 meta 生效的话,提交的表单就是 GB2312 编码的了
所以
在page-1.php(要获取的页面)
$key=$_POST['key']=iconv("UTF-8","gb2312",$_POST["key"]);是错误的!
你这是把 GB2312 当做 UTF-8 处理,怎么能得到正确的结果呢?
header("Content-Type:text/html;charset=GB2312");
位于 http 协议头中,其优先级高于
------解决思路----------------------结果还是不行、还是一样....
什么叫“还是不行”、“还是一样”
到底是怎样的“不行”、怎样的“一样”
------解决思路----------------------header()前面不能有任何输出
------解决思路----------------------解决就好,知其然也要知其所以然,自己总结一下吧
其实每次传输过程都要考虑前后的编码问题,别忘了,编辑器打开php文件写代码也是一次传输过程,保存是另一次,按这样的思路,自己列出每一个传输过程再检查问题就变简单了,
------解决思路----------------------统一编码就好,
用个好的编辑器也很重要,
推荐notepad++,想改编码,非常方便。