一、response:从服务器返回页面:
1、jsp中设置charset=GBK
2、response.setContentType("text/xml;charset=GBK")
二、request:到服务器再到数据库
1、get和post请求:
new String(strObj.getBytes("iso-8859-1"),"GBK")
2、post请求:
a、request.setCharacterEncoding("GBK");
b、可以设置filter过滤器拦截
3、get请求:
步骤1、先配置服务器的设置,如tomcat:在它的\conf\server.xml中:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GB18030"/> //增加URIEncoding的设置
步骤2、然后在java中对中文采用java.net.URLEncoding.encode()编码
三、response.sendRedirect重定向时:
1、采用new String(strObj.getBytes("iso-8859-1"),"GBK")
2、采用与上面一样的处理:
步骤1、先配置服务器的设置,如tomcat:在它的\conf\server.xml中:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GB18030"/> //增加URIEncoding的设置
步骤2、然后在java中对中文采用java.net.URLEncoding.encode()编码,比如:
//errorMessage为字符串
//URLEncoder.encode(errorMessage, "GB18030"))用来将errorMessage的编码格式转换为GB18030格式
response.sendRedirect(request.getContextPath() + "/basedata/my.jsp?errorMessage=" + URLEncoder.encode(errorMessage, "GB18030"));
四、spring的乱码过滤器:org.springframework.web.filter.CharacterEncodingFilter
web.xml中配置:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
几种编码范围:
GB18030: 覆盖了所有unicode编码,是windows的默认编码格式。
GBK: 编码能够表示繁体字和简体字。
GB2312: 只能表示简体字。
按照包含汉字范围排序 GB18030 > GBK > GB2312
1、jsp中设置charset=GBK
2、response.setContentType("text/xml;charset=GBK")
二、request:到服务器再到数据库
1、get和post请求:
new String(strObj.getBytes("iso-8859-1"),"GBK")
2、post请求:
a、request.setCharacterEncoding("GBK");
b、可以设置filter过滤器拦截
3、get请求:
步骤1、先配置服务器的设置,如tomcat:在它的\conf\server.xml中:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GB18030"/> //增加URIEncoding的设置
步骤2、然后在java中对中文采用java.net.URLEncoding.encode()编码
三、response.sendRedirect重定向时:
1、采用new String(strObj.getBytes("iso-8859-1"),"GBK")
2、采用与上面一样的处理:
步骤1、先配置服务器的设置,如tomcat:在它的\conf\server.xml中:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GB18030"/> //增加URIEncoding的设置
步骤2、然后在java中对中文采用java.net.URLEncoding.encode()编码,比如:
//errorMessage为字符串
//URLEncoder.encode(errorMessage, "GB18030"))用来将errorMessage的编码格式转换为GB18030格式
response.sendRedirect(request.getContextPath() + "/basedata/my.jsp?errorMessage=" + URLEncoder.encode(errorMessage, "GB18030"));
四、spring的乱码过滤器:org.springframework.web.filter.CharacterEncodingFilter
web.xml中配置:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
几种编码范围:
GB18030: 覆盖了所有unicode编码,是windows的默认编码格式。
GBK: 编码能够表示繁体字和简体字。
GB2312: 只能表示简体字。
按照包含汉字范围排序 GB18030 > GBK > GB2312