> 백엔드 개발 > PHP 튜토리얼 > 提交表单,$_post[XX]取得的数据为乱码

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

WBOY
풀어 주다: 2016-06-13 12:26:07
원래의
1061명이 탐색했습니다.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿