GET请求的中文乱码处理
在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。
- 上一篇:没有了
- 下一篇: 面试题 java垃圾回收机制