需要快速收录的请联系QQ:2303230985
当前位置:SEO网站目录 » 站长资讯 » 站长联盟 » 文章详细 订阅RssFeed

php接收GET方法传入的中文参数乱码深究

来源:moon's blog 浏览:1963次 时间:2015-11-04

最近写了个简单的页面,从浏览器中传入中文参数(test.php?name=测试),不论怎么设置utf-8的页面中都显示乱码,google了一把也查到了不少解决办法,但是问题的原因到底是什么呢?没有人深入研究这个问题。出于好奇便要好好查查到底是什么原因导致,也算涨点经验!
首先先来看下简单的测试代码:

  1. <!--?php  
  2. header("Content-Type:text/html;charset=UTF-8");   
  3. $name = $_GET['name'];   
  4. var_dump($name);   
  5. ?>  

测试结果如下:







代码中声明了响应内容的编码为utf-8,显示的内容确实乱码。在这里请注意var_dump出变量的长度只有4 ,很显然,两个中文字的长度在utf-8编码下肯定不止4个字节,然后我们再看一下Firefox的访问这个页面url







FireFox会自动将中文url编码,所以我们可以看到测试变成了%B2%E2%CA%D4,很明显,这里一个字是两个字节,是gb2313、gbk等中文编码格式,而不是utf-8编码。如果我们把页面的编码切换为gbk,中文参数就会显示正常,参见下图







接下来我们做另外一个测试,代码如下:

  1. <!--?php   
  2. header("Content-Type:text/html;charset=UTF-8");   
  3. $name = $_GET['name'];   
  4. var_dump($name);   
  5. ?>   
  6.   
  7. "GET">   
  8. "name" />   
  9. "submit" value="输入中文提交" />   
  10.   

测试结果,正常显示:







那么,是什么导致这个问题的发生呢?
答案是浏览器默认编码在作怪,我们都用的是中文系统,浏览器默认的编码自然也会设置为本地化,例如我自己电脑上的IE和FireFox的默认编码都是gb系列的。
浏览器在请求用户输入的url 时会默认把url中的中文以默认的编码格式发送而不是以页面的编码格式发送,这就是为什么页面中带有中文的链接正常而我们手动输入的链接

会乱码的原因。同理,如果我们把浏览器的默认编码调整为utf-8,那么输入url中的中文则会按照utf-8编码。

除了上面的之外,还有以下情况会出现这种情况:

如果gbk编码的页面生成的地址链接到utf-8的页面,gbk页面的中文是按照gbk的格式编码传送给下个页面,那么utf-8编码接收后肯定会出现乱码。
IIS的url重写模块,重写后的中文编码也是gbk,如果你的页面是utf-8编码,那么重写参数将会失效。像这些情况,我们就需要使用php内置的转码函数来处理编码问题了:

方案1:

  1. $name = iconv("gbk","utf-8",$name);  

方案2:

  1. mb_convert_encoding($name"utf-8""gbk");  


本文地址转载自http://www.92csz.com/03/986.html

最新点入

  • 阳光游戏阳光游戏

    阳光游戏网为玩家提供新的网络游戏,单机游戏,手机游戏,手游等资源,经过多年努力已成为游戏玩家首要选择的游戏资讯、游戏资源网站。

    www.shiciwang.com.cn
  • 香香腐宅_官网入口香香腐宅_官网入口

    香香腐宅平台最新版是一款备受漫画爱好者喜爱的阅读软件,它为用户提供了海量的漫画资源,香香腐宅官网涵盖了各种题材和类型,让用户能够轻松找到自己喜欢的漫画www.boylove88.com。

    www.boylove88.com
  • 全球網址提交網全球網址提交網

    全球網址提交網是全免費的網址提交目錄,收錄國內外、各行業優秀網站,為用戶提供全面的網站分類目錄網站、優秀網站參攷、友情連結交換平臺、網站推廣服務國內免費的網站提交入口(www.urlglobalsubmit.com)。

    www.urlglobalsubmit.com
  • 国际电子商务网国际电子商务网

    欢迎访问国际电子商务网,这里有各行业信息网/B2B电子商务网站,是最方便的免费网络推广平台,已成为无数商家网络营销/网络推广的首选网站!

    www.intbtb.com
  • SEO网站目录SEO网站目录

    SEO网站目录是全人工编辑的开放式网站分类目录,收录快、快照新,收录国内外、各行业优秀网站,旨在为用户提供网站分类目录检索、优秀网站参考、网站推广服务。

    https://www.seo123.net

推荐站点

  • 中国国家博物馆中国国家博物馆

    中国国家博物馆网站全面及时介绍中国国家博物馆概况,藏品,展览,活动,学术研究,国际交流等各项内容,提供参观导览,门票预约,留言问答等多类服务,努力为公众了解国家博物馆,参观国家博物馆和享受国家博物馆提供的各类文化休闲服务提供支持

    https://www.chnmuseum.cn/
  • 故宫博物院故宫博物院

    故宫博物院是一座特殊的博物馆,成立于1925年的故宫博物院,建立在明清两朝皇宫——紫禁城的基础上。历经六百年兴衰荣辱,帝王宫殿的大门终于向公众敞开。走过近百个春秋的故宫博物院,不仅一如既往精心保管着明清时代遗留下来的皇家宫殿和旧藏珍宝,而且通过国家调拨、向社会征集和接受私人捐赠等方式,极大地丰富了文物藏品,形成古书画、古器物、宫廷文物、书籍档案等领域蔚成系列、总数186万余件的珍贵馆藏。漫步在故宫博物院的常设文物专馆,或者欣赏频繁推出的专题文物展览让您可以更完整地了解中华民族工艺美术的伟大成就。故宫博物院是世界文化遗产地、全国重点文物保护单位和爱国主义教育示范基地。

    https://www.dpm.org.cn
  • 上海天文馆上海天文馆

    上海天文馆(上海科技馆分馆)是上海市政府投资兴建的大型科普场馆。上海天文馆(上海市浦东新区临港大道380号)占地面积5.8万平方米,建筑面积3.8万平方米,是全球最大的天文馆。上海天文馆以“塑造完整宇宙观”为愿景,努力激发人们的好奇心,鼓励人们感受星空,理解宇宙,思索未来。上海天文馆主展区包括“家园”“宇宙”“征程”等三个部分,全景展现宇宙浩瀚图景,打造多感官探索之旅,帮助观众塑造完整的宇宙观。上海天文馆拥有四大专业级天文观测及天象演示设备,65厘米自适应光学太阳望远镜(EAST)可在白天实现太阳的多波段观测,展现高清晰度的太阳黑子、日珥、耀斑等影像;一米双焦点望远镜(DOT)可在夜间带观众欣赏清晰的月面、行星和美丽的深空天体;全球最先进的23米直径多功能超高清球幕影院带您进入神秘的宇宙世界;高级光学天象仪则投射出高精度的模拟星空,为您带来无比震撼逼真的星空体验。

    https://www.sstm-sam.org.cn
  • SEO网站目录SEO网站目录

    SEO网站目录是全人工编辑的开放式网站分类目录,收录快、快照新,收录国内外、各行业优秀网站,旨在为用户提供网站分类目录检索、优秀网站参考、网站推广服务。

    https://www.seo123.net
  • 中国天气网中国天气网

    官方权威发布天气预报,逐三小时天气预报,提供天气预报查询一周,天气预报15天查询,天气预报40天查询,天气资讯,空气质量,生活指数,旅游出行,交通天气等查询服务

    www.weather.com.cn