日期:2014-05-17  浏览次数:20630 次

写到浏览器的中文如何request如何获取值
我在浏览器地址栏后面url后面加上    ?u=中文
这样request如何得到这个u的值呢?

------解决方案--------------------
String s = request.getParameter("u");
------解决方案--------------------
项目编码跟jsp页面写一致,如果还是乱码,就在后天解码
------解决方案--------------------
前台encode,后台decode
------解决方案--------------------
你不decode试试。你那个jsp是什么格式编码?
------解决方案--------------------
你这样当然是乱码了,你用提交表单或者跳转页面的方式带中文,这些中文会经过一次urlencode,所以你在浏览器看到的是一串编码后的内容。服务器在接收参数值得时候会自动进行相应解码,所以你如果直接放中文,服务器会认为你的中文是编码后的东西,它还是执行解码操作,所以读不出正确结果的。不知这么说你明白没有?手机手打,望采纳
------解决方案--------------------
好吧,我试了下直接输浏览器还是会进行urlencode,所以我上面说错了,楼主自己找到正解了
------解决方案--------------------
引用:
new String(username.getBytes("ISO-8859-1"),"UTF-8");   这样就可以了 ,不知道为啥  刚开始这样试 不行   。


你这样会有个潜在的问题,

如果你的url是用js拼接的然后发送的,还是会乱码
------解决方案--------------------
先用String u=request.getparameter("u");获取值因为uri是用ios-8859编码的所以你获取到的肯定是乱码,因为url的地址是没法设置编码方式的你用new String(u.getBytes(utf(ios-8859),utf-8)先解码再按照你的编码方式编码就行了