现在的位置: 首页 > 综合 > 正文

asp.net 中IE6中 URL传中文乱码的解决

2013年07月13日 ⁄ 综合 ⁄ 共 538字 ⁄ 字号 评论关闭
最近写的一个程序,遇到了这个问题:
页面A是选择地区:由于一个省市列表没有存数据库,是用js的数组在维护.
因此选择好地区后跳转下一页,需要把地区的中文传过去,而且js最方便就是通过url(get方法)传过去.
测试的时候,发现在IE6下传中文的话,只能传2个字,第三个字开始就乱码.而IE7和ff就没有问题.
一开始我们怀疑是vs自带的端口服务器不支持中文,换到iis中文版下仍然不行.
最后发现用不同的客户端连接,会出现不同的结果,因此应该是浏览器的问题.
浏览器发送请求的时候,编码不同.
去网上搜索解决方案,有人说转成拼音,有人提供了url加密和解密的js类--但是都不行. 比如,js 中提供的urlEncode并不能用.net中的urlDecode解密.
最后,在ms的官方论坛发现,可以在web.config中设置发送请求的默认编码:
注意:重点是RequestEncoding:
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" uiCulture="zh-CN" responseHeaderEncoding="gb2312" fileEncoding="gb2312" />

【上篇】
【下篇】

抱歉!评论已关闭.