一、出现乱码的原因
传输方和接收方采用的编码不一致。传输方对参数采用的是UTF-8编码而接收方却用GBK进行解析,当然是乱码,且Tomcat服务器默认采用的ISO8859-1编码得到参数值,如果没有设置也可能会出现乱码。
二、乱码的类型以及解决办法
1、 response乱码
|
01 02 03 |
|
第一句目的是为了指定浏览器以UTF-8码表打开服务器发出的数据
第二句目的是设置response使用的码表,控制response以UTF-8码表向浏览器写入数据(必须写在方法中第一行)
或者:
|
01 02 03 |
|
通过字节流向浏览器写入meta标签控制浏览器使用的码表
2、 request乱码
request请求分为post和get,分别有不同的方法解决
post请求乱码
方法1:在doPost方法的第一行加入如下代码,用于对请求体中的字符集指定编码格式
|
01 |
|
方法2:利用string方法对指定字符集进行转换,Tomcat默认使用iso-8859-1编码,修改为utf-8编码
|
01 02 03 |
|
get请求乱码
(1)获取url乱码:
在Tomcat8.0以下版本中,修改\Tomcat 7.0\conf\server.xml配置文件如图,加入URIEncoding=“UTF-8”!

(2)响应乱码:
在doGet方法响应之前中加入response.setContentType("text/html;charset=UTF-8");

本文详细介绍了在JSP Servlet中出现中文乱码的原因,包括post和get请求的乱码问题。解决方法包括设置response和request的编码,以及针对Tomcat服务器的配置调整,如在doPost和doGet方法中指定UTF-8编码,以及在server.xml中设置URIEncoding。通过这些方法可以确保传输和接收数据时保持一致的编码,避免乱码现象。
1219

被折叠的 条评论
为什么被折叠?



