乱码问题

Request 乱码问题

POST

Tomcat 8 以上版本: Get没有乱码问题,POST会产生乱码(默认编码是ISO-8859-1)。

设置服务器解析编码格式,可解决问题:

req.setCharacterEncoding("UTF-8"); 只针对 POST请求 ,GET无效

GET

Tomcat 7 以下版本: GET 会出现乱码

1
2
3
str.getBytes("IS0-8859-1"); // 先解码转为Bytes

new String(str.getBytes("IS0-8859-1"), “UTF-8”); // 再用UTF-8重新编码

Response 乱码问题

服务端默认编码是ISO-8859-1

设置服务端编码和响应头编码:

1
2
3
response.setCharaterEncoding("UTF-8"); // 设置服务端编码方式

response.setHeader("content-type", "text/html;charset=UTF-8"); // 设置MIME类型和编码格式

同时设置编码和响应头(替代上面两句):

1
response.setContentType("text/html;charset=UTF-8"); // 同时设置服务端和客户端的编码格式