ie浏览器地址栏中文参数提交服务器乱码分析

来源:互联网 发布:阿里云虚拟主机装软件 编辑:程序博客网 时间:2024/04/28 15:05

今天我遇到了一个奇怪的问题。之前我通过360浏览器地址栏输入中文参数提交到服务器,服务器解析正常。如下所示:


但是在偶然的情况下,我直接启动了myeclipse自带的浏览器,结果就发现了问题:


所以我就拿到了ie浏览器下测试,结果是同样的:


我尝试过很多方法,例如request.setCharacterEncoding("utg-8");new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");

修改tomcat默认传输编码为utf-8,URLEncoding.encode(equest.getParameter("name"),"utf-8");均没有效果,还是乱码(我的浏览器和ide编码都是utf-8)。

只不过变成了???乱码。后来听说???是因为GBK读UTF-8编码产生的错误,所以我又将ide编码改为了gbk,

并调用了newString(request.getParameter("name").getBytes("ISO-8859-1"),"gbk");还是乱码。

甚至将ide的编码改为了gbk,调用new String(request.getParameter("name").getBytes("ISO-8859-1"),"gbk");也是无法解决乱码

我在网上找了很久,看了很多别人写的文章,但基本上没有类似的问题描述

最终我无意在ie的浏览记录中看到了之前的地址信息:


我尝试着访问,结果服务器解析正常。所以我就在想,是不是ie地址栏不支持汉字,必须汉字转码才能被服务器解析。而360会自动完成这个转码工作呢?

于是我就将360中可以正常访问的一个带中文参数的url放到ie中访问,结果似乎证明了我的猜想:



     当然,以上均是我个人的推理和分析,大家有更好的想法可以提出来。

0 0
原创粉丝点击