入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

GET请求的中文乱码处理

创建时间:2015-06-06 投稿人: 浏览次数:624

在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


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。