项目场景:
Spring MVC中,返回给页面的JSON格式数据中有中文的情况
问题描述
返回的数据在页面中显示会出现乱码的情况`
原本的中文字在页面当中变成了问号
解决方案:
方法一:在@RequestMapping注解中设置编码格式
@RequestMapping(value = "/jsonTest",produces = "application/json;charset=utf-8")
方法二(统一解决):在项目中Spring MVC的配置文件中加入以下配置
<!--JSON乱码问题配置-->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
<property name="failOnEmptyBeans" value="false"/>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
个人遇见的问题
以上是通用的两种方法,个人在使用方法二时遇到过一个小问题,就是添加了这段配置之后tomcat就开始启动报异常原因如下。
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.2.2</version>
</dependency>
使用方法二一定一定一定要导入Jackson的依赖,不然添加了这段配置之后tomcat启动会报异常,还有再pom里导入了依赖后,不要忘记在Artifacts下的lib目录里把jackson那三个依赖添加进去,不然都会有问题。