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); }
现在测试下
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。