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);
}
现在测试下


总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论