HttpServletRequest字符集问题

post中文处理

1post在spring里的设置web.xml文件

<!-- 字符处理  UTF8 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
	</filter-mapping>

2设置HttpServletRequest.setCharacterEncoding("utf-8")

3设置tomcat里的字符集

get中文处理

1设置tomcat

2自己解码new String(username.getBytes("ISO-8859-1"),"UTF-8");

tomcat字符集

1tomcat8之前默认是ISO8859-1,tomcat8及其以后,是UTF-8;

2设置tomcat下的conf/server.xml文件的URIEncoding="UTF-8" ;

找到如下代码:    
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

修改后:

<Connector port="8080"  protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

为什么默认的编码是iso-8859-1/UTF-8,下面这篇博客讲解了探索过程,但是tomcat8依旧是这几个包,他的编码为什么变为UTF-8?

https://blog.csdn.net/gschen_cn/article/details/26155875

原文地址:https://www.cnblogs.com/SmilingEye/p/10395814.html