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

地址栏中输入中文参数,后台得到乱码
大体流程是这样的:我想在地址栏内访问后台的action,输入http://*****?id=中文,后台得到的id是乱码。经过查资料了解到id经过以下编码流程,在firefox浏览器中以gbk编码,传到tomcat后先经过iso-8859-1编码后又经过utf-8编码后传到后台,这样得到的id参数不知道如何解析成正确的编码格式。我想通过程序来编码,不想修改firefox的设置,请大家帮我想想办法。

------解决方案--------------------
、url是直接在firefox浏览器的地址栏内手动输入,不是在jsp页面上,因此不能直接对id使用函数编码;不能获得吗? 能呀!
你想统一编码用utf-8,String id = new String(request.getParameter("id").getBytes("iso-8859-1"),"utf-8");试试!,还请问一下,你后台的默认格式是什么呀?
------解决方案--------------------
引用:
我再明确一下我的需求:1、url是直接在firefox浏览器的地址栏内手动输入,不是在jsp页面上,因此不能直接对id使用函数编码;2、我想统一编码用utf-8,因此不可以用gbk编码。
大家有什么其他方法吗?


第一,为什么要让用户在地址栏内手动输入呢?不能在界面上给个输入框么?这样的界面对用户来说不是个好的界面,在地址栏输入,如果输入的参数错了或者该输入的没有输入,你不校验么?
第二、如果统一用utf-8,只要传参数的时候encodeURI("我的参数")就可以了,然后要有过滤器,设置request.setCharacterEncoding(encoding);

你可以看看这个:http://blog.csdn.net/wula0010/archive/2009/02/27/3942321.aspx

------解决方案--------------------
今天才学 gbk  和uf-8