author:chenjm
java字符乱码
1. 检查三个文件的编码格式是否一致
(1)数据库编码格式
打开连接工具查看数据库编码格式
(2)页面编码格式
(3) 集成环境的编码格式:这以idea为演示
打开File-->Settings-->Editor-->File Encodings
假设三个格式不一致,而你又不想改变编码格式,在接受数据时候可以使用一下编码,假设jsp的编码格式是GBK,数据库编码格式是UTF-8:
data = new String(data.getByte("GBK"),"UTF-8");
2.字符过滤器(web.xml)
假若三种文件编码格式相同,在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>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.url传参乱码
打开项目引用的tomcat中,server.xml文件,修改为如下形式:
前面三个步骤就能解决大部分的乱码问题了,还有一种乱码是因为ajax传输时候数据json化时候出错。
3.传输json数据乱码
(1)在每个RequestMapping如下配置:
(2)在application-mvc配置文件如下配置,全局编码修改:
如下是配置了类型转化器时候的情况,假如没有配置类型转化器将conversion-service=“conversion-service”
validator=“validator” 删除即可
<mvc:annotation-driven conversion-service="conversion-service"
validator="validator">
<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.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json; charset=UTF-8</value>
<value>application/x-www-form-urlencoded; charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
在mvc:annotation-driven节点下,配置子节点mvc:message-converters