@EnableWebMvc注解中文乱码问题解决
1 问题出现
@GetMapping("/logout")
public String logout(){
StpUtil.logout();
return "退出登录!";
}
请求后返回如下
2 解决
其实就是一个中文乱码问题:
解决思路有两种,一种是局部解决,一种是全局解决
2.1 局部解决
在controller层加注解
@GetMapping(value = "/login/{username}/{password}",produces = "application/json;charset=utf-8")
在使用到的地方直接设置字符集
response.setCharacterEncoding("UTF-8");
2.2 全局解决
创建配置类全局解决即可
/**
* @author liukai
* @date 2022/3/27 11:26
*/
@Configuration
public class WebMvcCobfigCustom implements WebMvcConfigurer {
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
return converter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
WebMvcConfigurer.super.configureMessageConverters(converters);
converters.add(responseBodyConverter());
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}
}
3 结束语
解决方案远远不止这几种,只要能根据需求找到合适自己的解决方案就行.