Rumah >pembangunan bahagian belakang >tutorial php >提交表单,$_post[XX]取得的数据为乱码

提交表单,$_post[XX]取得的数据为乱码

WBOY
WBOYasal
2016-06-13 12:26:071061semak imbas

提交表单,$_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++,想改编码,非常方便。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn