springboot Controller直接返回String类型带来的乱码问题及解决
作者:墨语wcy
文章介绍了在Spring Boot中,当Controller直接返回String类型时可能出现的乱码问题,并提供了解决办法,通过在`application.yaml`中设置请求和响应的编码格式,并在自定义配置类中进行配置,可以有效解决这一问题
springboot Controller直接返回String类型乱码
学习springboot路上遇到的一个小坑
就是controller在响应时如果直接返回String类型,得到的将是一串???的乱码
解决办法
就是配置请求个响应的编码格式
首先在 application.yaml 内设置 请求的编码格式
# Tomcat specifics tomcat: uri-encoding: UTF-8
然后设置response响应的编码格式
在自定义的springboot配置类内加入
@Bean public HttpMessageConverter<String> responseBodyConverter() { return new StringHttpMessageConverter(Charset.forName("UTF-8")); } @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(responseBodyConverter()); // 这里必须加上加载默认转换器,不然bug玩死人,并且该bug目前在网络上似乎没有解决方案 // 百度,谷歌,各大论坛等。你可以试试去掉。 addDefaultHttpMessageConverters(converters); } @Override public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { configurer.favorPathExtension(false); }
现在测试下
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- SpringBoot如何实现调用controller和Service层方法
- springboot中的controller参数映射问题小结
- springboot中Controller内文件上传到本地及阿里云操作方法
- springboot如何通过controller层实现页面切换
- SpringBoot之controller参数校验详解
- springboot中@RestController注解实现
- SpringBoot通过注解监测Controller接口的代码示例
- springboot controller参数注入方式
- SpringBoot中@RestControllerAdvice @ExceptionHandler异常统一处理类失效原因分析
- SpringBoot和MybatisPlus实现通用Controller示例