springboot解决乱码,你get到了吗
SpringBoot 解决 乱码 get
2023-06-13 09:12:59 时间
在使用springboot时或许会遇到乱码问题,springboot有很多东西只要在配置文件配置一下就能解决问题,但有时配置却不起作用。
下面是我知道的springboot解决乱码问题的方法:
- 在配置文件中配置
#编码格式
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
如果出现乱码问题,这种方式解决的可能性不大,但可以尝试一下,希望还是要有的,万一解决了呢,因为查看源码发现springboot默认的编码格式就是UTF-8
2.手写过滤器
//字符编码过滤器
@WebFilter(urlPatterns = "/*",filterName = "CharacterEncodingFilter")
public class CharacterEncodingFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
filterChain.doFilter(request , response);
}
@Override
public void destroy() {
}
}
如果这种方式也解决不了问题的话,只能使用最后一种方式了。
3.字符编码转换器
/**
* 中文乱码解决
*/
@Configuration
public class CharsetConfig extends WebMvcConfigurerAdapter {
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
StringHttpMessageConverter converter = new StringHttpMessageConverter(
Charset.forName("UTF-8"));
return converter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
converters.add(responseBodyConverter());
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}
}
StringHttpMessageConverter是一个请求和响应信息的编码转换器,通过源码我们发现默认编码ISO-8859-1,不是UTF-8,所以我们只要通过上述配置将请求字符串转为UTF-8 即可,请看部分源码,感兴趣的可以看下源码
以上是我知道的三种解决springboot乱码问题的方法,如果你有更好的方法请后台留言告诉我。
水平有限,能力一般,如有错误请指出。
相关文章
- Java项目毕业设计:基于springboot+vue的电影视频网站系统「建议收藏」
- spring中过滤器和拦截器_springboot拦截器顺序
- IntelliJ IDEA最新版配置SpringBoot热部署遇到的坑
- SpringBoot解决CORS跨域(@CrossOrigin)
- springboot事物oracle,SpringBoot 事务管理
- 最简单的SpringBoot整合MyBatis教程
- SpringBoot系列之动态定时程序改进版
- SpringBoot中的自动装配
- SpringBoot内置Servlet源码解析:容器自动配置
- 解决Idea乱码问题 SpringBoot-yaml配置文件乱码问题
- idea创建springboot父子工程_Springboot框架
- Springboot集成swagger_springboot nginx
- springboot多环境配置文件_Springboot教程
- (已解决)SpringBoot微信公众号服务器配置时验证通过却提示配置失败
- springBoot整合Mybatis-Plus需要的依赖_springboot中文手册
- 生成SpringBoot 的maven项目
- SpringBoot:模块探究之spring-boot-autoconfigure
- springboot 之集成Redis
- SpringBoot-实用篇
- SpringCloud 和 SpringBoot 版本选型
- SpringBoot 部署打包成 jar 还是 war?网友:肯定是。。。
- 2万字长文揭示SpringBoot整合ElasticSearch的高阶妙用|文末赠书
- Redis整合SpringBoot的RedisTemplate实现类(实例详解)