记录学习遇到的问题
后端用的maven web项目 框架 Spring Mybatis Spring MVC
前端是vue项目
问题:用axios在后台取值返回中文是问号

控制台资源看编码是ISO-8859-1 因为MVC默认编码是这个(小白 应该是的吧。。还是自己百度看到的)

然后遇到问题后百度各路大神解答
有在方法前面的@RequestMapping加上produces属性
如:
@RequestMapping(value = "selectAll",produces = "application/json;charset=utf-8")
@ResponseBody
public String selectAll(User user) {
System.out.println("Come in SelectAll");
return JSON.toJSONString(userService.selectAll(user));
}

这样的话可以 但是每个方法都要加上这个东西
甚是麻烦(烦死了)
所以···我不甘心 肯定有配置文件解决的这个方法
但是找了好多大神的解答
试了好几个配置都是不行的
虽然······但是·······
终于······在我历史记录100+的时候终于找到了!!
在MVC配置文件这样加这个东西
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<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>
放的位置不知道有没有顺序 反正我是这样放的

然后页面会报错

在上面加上这些
xmlns:mvc="http://www.springframework.org/schema/mvc"
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
就这里

然后运行会报错的 还缺少jar包

com.fasterxml.jackson.databind.exc.InvalidDefinitionException
还要下载一个jar包(不知道为啥我的maven下载报Missing artifact)
fasterxml.jackson.databind ←就它
然后我去https://mvnrepository.com/这里下载的
我把pom配置放这儿(因为去这个网站也给的这个)

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
整完了 但是!!

我数据没了。。。。
在axios输出看下

很明显 他成字符串了
虽然······但是······他中文出来了

以为啥 因为我返回的是JSON.toJSONString()

然后把String去掉就好了
@RequestMapping("selectAll")
@ResponseBody
public Object selectAll(User user) {
System.out.println("Come in SelectAll");
return JSON.toJSON(userService.selectAll(user));
}
就这样 方法的返回值类型也要改
直接把produces干掉

该说不说 热巴真好看!!!
然后

完美!!!!
本文介绍了一种在Spring MVC框架中解决通过axios请求获取的中文数据出现乱码的方法,通过配置文件来统一设置字符编码为UTF-8,并解决了由此带来的JSON数据格式问题。
870

被折叠的 条评论
为什么被折叠?



