servlet 中文编码设置

Tomcat服务器默认采用的ISO8859-1编码

产生的原因:

不同数据来源的编(解)码格式不同:

数据来源默认编码格式
浏览器页面 GBK
(可在浏览器页面右键切换)
request(get) ISO-8859-1
request(post) GBK(同浏览器),但是如果是服务器来的页面一般已经设置了UTF-8(例如JSP提交的页面)
Servlet(response) ISO-8859-1

1.请求中文的处理:

get:

String code=new String(request.getParameter("code").getBytes("ISO8859-1"),"UTF-8");

post:

request.setCharacterEncoding("UTF-8");

2.响应中的中文处理:

response.setContentType(“text/html;charset=UTF-8”);

3.注意
1,一般情况下,JSP页面的默认编码字符集要设置成UTF-8。否则无法完成中文显示和数据传输。这里不考虑GBK的情况
2,在服务器端的程序之间,数据传输都是以UTF-8格式传输的。所有不用考虑中文乱码问题
3,setCharacterEncoding(“UTF-8”)是设置字符集,request调用是设置解码方式(因为是从页面过来的),而response调用时设置编码方式(因为要想页面输出内容,先在Servlet中编码)
4,getBytes(“UTF-8”);方法通过字符串调用,是按照指定字符集编码。
5,new String(string.getBytes(“ISO-8859-1”),”UTF-8”);方法将string字符串先以原始(ISO-8859-1)进行解码转成字节数组,在以(UTF-8)编码封装成新字符串。

原文地址:https://www.cnblogs.com/appium/p/10024921.html