GET请求的中文乱码处理

来源:互联网 发布:重庆软件学校 编辑:程序博客网 时间:2024/06/04 19:28

在post请求中,请求头中含有中文字符,我们可以通过

request.setCharacterEncoding("utf-8");

的方法来解决。

然后使用request.getParamater("param");来获取属性


可是在一些特殊的情况下,只能通过get请求来传递数据,比如在一个数据处理的页面,要点击一个超链接,然后跳转到servlet中去处理数据,这个时候数据传递的最简单的方法就是<a href="MyServlet?data1=data1&data2=data2" >跳转</a>

url中的信息到了服务器是由tomcat解析的。

所以我们可以通过修改配置文件的方法,让他不要以默认的iso-8859-1的方式来解析


不过我不太赞同去修改配置文件,毕竟不能因为自己一个页面的问题,而去影响到了所有的其他页面。


既然他是以iso-8859-1的方式来解析的,而在计算机内都是以二进制方式存储数据的,那么我们就有办法来把他还原出来

1.首先还原到字节码的状态,(怎么来的就怎么回去,你是由iso-8859-1来的,那就以iso-8859-1回去)

2.将还原出的字节码重新编译成字符串(该怎么编就怎么编,你最早的时候传给我,网页里怎么编码的我就怎么解码,这里我网页里用的是utf-8)


String dataISO=request.getParameter("data");byte[] dataByte=dataISO.getBytes("ISO-8859-1");String data=new String(dataByte,"utf-8");

这样就得到了原本网页里的内容,如果网页里用的是gb2312/gbk那么这里的utf-8也改成对应的gb2312/gbk


0 0
原创粉丝点击