乱码
乱码问题一般比较棘手,主要因为导致中文乱码的问题实在太多
如果不对症下药的话,不好治
因此,对乱码问题做如下总(springMVC框架学习阶段乱码问题)
1) idea环境问题
在mvaen设置中加入如下代码(以idea为例)
setting -->maven–>runner : -Dfile.encoding=gbk
2) 请求乱码
2.1)get
1) tomcat8 无需处理
2) 如果tomcat7一下 需要修改配置文件
3) 如果使用的是插件
<configuration>
<port>8080</port>
<path>/</path>
<!--get 中文乱码-->
<uriEncoding>utf-8</uriEncoding>
</configuraion>
2.2)post
<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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3) 响应乱码
3.1)json,String
springmvc 默认 帮助我们转换的json 不乱码,但是我们自己返回的字符串乱码
解决方案
<mvc:annotation-driven >
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!-- json 数据乱码 -->
<value>text/html;charset=UTF-8</value>
<!-- json 数据乱码-->
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
3.2) jsp
自带头部信息无需处理,如果头部信息被删除就会乱码
4.1) 数据库问题
1> 如果数据存入数据库中出现问题,首先检查下数据库编码是不是UTF-8
2> 其次,在数据源URL后加上编码方式,格式如下
<property name="url" value="jdbc:mysql://localhost:3306/health?characterEncoding=UTF-8" />