WebSphere乱码
SpringBoot项目打War部署到WebSphere容器中文乱码
问题描述
遇到一个老项目需要部署在WebSphere8.x中,打包War方式部署,遇到以下问题:
- 上传附件时,
附件中文名称
乱码; - 前端使用
formData
方式提交表单时,属性有中文时,也会乱码;
处理过程
- 使用
字符过滤器
- yml中修改配置,如
http.encoding.charset
以上方式,均未解决问题
原因分析
SpringBoot默认使用
StandardServletMultipartResolver
来处理附件上传,源代码中没有对编码进行设置
解决方案
使用
org.springframework.web.multipart.commons.CommonsMultipartResolver
- 引入commons-fileupload依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
- 定义一个配置类
@Bean
public CommonsMultipartResolver commonsMultipartResolver(){
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setDefaultEncoding("UTF-8");
//other config
return resolver;
}