专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-963-0016      微信咨询  |  联系我们

Springboot项目中文乱码解决(源码案例)

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:03:09       共计:3616 浏览

使用idea搭建了一个springboot项目,版本号为1.5.22.ELEASE,只选择了spring-boot-starter-web依赖,自己编写controller之后,返回中文却乱码了,controller源码如下:

@RestController class TestController { @GetMapping("test") String test() { "测试乱码111111abc" } }

测试后返回结果如下:

springboot项目中文乱码

原因很明显,可以从上图中看出来:http响应的编码格式不对,设置为utf-8即可。

在网上找到的方式,大都是设置以下两个配置,然而并没有用:

spring: http: encoding: charset: utf-8 force: true

乱码原因分析解决

http响应头中的编码为 charset=ISO-8859-1,我们需要改变为UTF-8,所以我们可以通过在controller中设置响应编码的方式解决,controller源码可改为如下:

@RestController @RequestMapping(produces = "application/json;charset=UTF-8") class TestController { @GetMapping("test") String test() { "测试乱码111111abc" } }

最终解决了乱码问题,请求响应如下图:

返回的charset也变成了UTF-8。不过这只是解决了这一个请求的乱码问题。

Springboot项目乱码统一解决办法

此外,如果已经有较多的controller,这样设置很不方便。还可以通过添加一个StringHttpMessageConverter的方式,统一设置,源码如下:

package com.jvm123.api.config /**
 *
 * @author yawn < http://jvm123.com >
 *
 */ @Configuration @EnableWebMvc class MvcConfig extends WebMvcConfigurerAdapter { @Override void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8)) super.configureMessageConverters(converters) } }

设置后的请求结果如下:

这样就统一解决了springboot项目中的中文乱码问题。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:SpringBoot中使用过滤器和拦截器(Boot项目响应乱码问题解决) | ·下一条:IDEA--IDEA debug断点调试技巧

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有