关于response和request乱码及解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CHEndorid/article/details/76944984

1、response乱码

原因:response缓冲区的默认编码是iso8859-1,此码表中没有中文,可以通过response的setCharacterEncoding("UTF-8")设置response的编码为UTF-8

但我们发现客户端还是不能正常显示文字
原因:我们将response缓冲区的编码设置成UTF-8,但浏览器的默认编码是本地系统的编码,因为我们都是中文系统,所以客户端浏览器的默认编码是GBK,我们可以手动修改浏览器的编码是UTF-8。

我们还可以在代码中指定浏览器解析页面的编码方式,
通过response的setContentType(String type)方法指定页面解析时的编码是UTF-8
response.setContentType("text/html;charset=UTF-8");

上面的代码不仅可以指定浏览器解析页面时的编码,同时也内含setCharacterEncoding的功能,所以在实际开发中只要编写response.setContentType("text/html;charset=UTF-8");就可以解决页面输出中文乱码问题。


2、request乱码

原因:由于HTML设置了浏览器在传输请求参数时,采用的编码方式是UTF-8,但在解码时采用的是默认的ISO8859-1,因此会导致乱码的出现


解决post提交方式的乱码:

request.setCharacterEncoding("UTF-8");
解决get提交的方式的乱码:

parameter = new String(parameter.getbytes("iso8859-1"),"utf-8");


猜你喜欢

转载自blog.csdn.net/CHEndorid/article/details/76944984