一、Web请求中的乱码
Tomcat中默认使用的是ISO-8859-1,属于西欧字符集,支持英文、数字以及标准符号,但是不支持中文字符集,为了解决中文乱码,就需要将ISO-8859-1转换为UTF-8字符集,其中需要将请求和响应报文中的字符集都设置为UTF-8
(1)Get请求乱码:server.xml文件配置URIEncoding(8.0以前需要写,8.0以后默认是UTF-8,可以不用写)
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
(2)Post请求乱码:web.xml配置CharacterEncodingFilter
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
(3)Response相应乱码:Spring中配置StringHttpMessageConvert
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
二、直接启动Tomcat时控制台出现乱码
将Tomcat目录下conf文件夹下的logging.properties文件中的控制台编码方式改为GBK,这样再启动就不会报错了