解决在controller直接返回string类型时所出现的乱码
1.先看自己的开发环境字符集是否正常
2.查看工程字符集是否正常
以上都ok,但是还是返回乱码,于是去找适合的解决方案:
方案1:@RequestMapping(value = "/use", produces = "application/json;charset=utf-8")
直接在请求路径上面添加 produces,亲测是可以解决问题的。一个controller还好,数量多了,这个方法就不靠谱了
方案2:新增config在自定义拦截器上指定字符集:
@Configuration
public class MyInterceptorConfig extends WebMvcConfigurationSupport{
@Override
protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
// 解决controller返回字符串中文乱码问题
for (HttpMessageConverter<?> converter : converters) {
if (converter instanceof StringHttpMessageConverter) {
((StringHttpMessageConverter)converter).setDefaultCharset(StandardCharsets.UTF_8);
}
}
}
}
成功解决。。。。