一、出现乱码原因
乱码原因:传输方和接收方采用的编码不一致。传输方对参数采用的是UTF-8编码而接收方却用GBK进行解析,当然是乱码,且Tomcat服务器默认采用的ISO8859-1编码得到参数值,如果没有设置也可能会出现乱码。
二、Post请求乱码
1. 乱码原因
Post请求是以二进制流的形式发送到服务器,服务器收到数据后,默认以iso-8859-1进行编码。
2. 乱码解决
在获取请求参数前设置字符集即可
request.setCharacterEncoding("UTF-8");
三、响应乱码
1. 乱码原因
服务器输出的字符串的编码和客户端显示字符串的编码不一致。
2. 乱码解决
//设置response字符流默认使用的码表
//response.setCharacterEncoding("UTF-8");
/* 1.设置response的字符流使用的码表
2.通知浏览器使用指定的码表去解码,在向浏览器输出字符流之前
*/
response.setContentType("text/html;charset=utf-8");
四、数据库乱码
使用Jdbc连接MySQL数据库,可能会出现乱码
解决方法:
连接数据库URL后 + &characterEncoding=UTF-8
创建表时设置编码格式 ENGINE=InnoDB DEFAULT CHARSET=utf8;