2014-09-04|3213阅|作者:蓝色理想|举报 摘要:get 中文请求
为什么有时候String str = request.getParameter();
new String(str.getBytes('iso-8859-1'),"utf-8")
仅仅这两句就能解决中文乱码?为什么没有用前台两次编码,后台一次解码呢?
是因为这时是通过浏览器发送get请求,浏览器默认的编码为utf-8,这样中文被
编码为utf-8的字节码,而tomcat一看已经没有中文字符,所以不会为我们编码
了,当后台调用request.getParameter时,又会为我们解码,默认是iso-8859-
1,这个过程类似于 String str = new String("中文".getBytes("utf-
8"),"iso-8859-1");因为"中文".getBytes("utf-8"),这个编码是可逆的【"中文
".getBytes("iso-8859-1")是不可逆的】,所以可以用 new String
(str.getBytes("iso-8859-1"),"utf-8")逆转回中文汉字。