Spring webflux上传文件中文名字乱码

详情

小记今天解决的一个bug,项目使用Spring webflux实现上传文件到服务器的功能,但长期以来文件凡是中文名字的是乱码,同事被困扰了很长一段时间,她一直怀疑是前端组件的问题,没有正确编码,前端使用vue实现。一直没找到根本原因,但找到网页传过来的编码,于是写了一行代码进行强行转码。

val filename = String(file.filename().toByteArray(charset("ISO-8859-1")), charset("UTF-8"))

我觉得该问题有点蹊跷,不应该发生,必须解决,于是便有了下文。

过程

我不太确定是前端还是后端代码的bug,因此我尝试了以下几种不同的情况

  1. react做的前端,使用antd上传的组件,后端使用我们的项目
  2. spring web开发的后端,vue前端
  3. 项目服务端(webflux),vue前端
  4. 新写了一个服务端,只实现上传的接口,但webflux的版本不一样,测了两个版本2.1.12.4.5,前端还是vue
    测试结果是原项目的服务端接口乱码(1和3),其他都正常

结论

项目的webflux版本有问题,使用的是spring-boot 2.4.4-SNAPSHOT,于是我们尝试升级到2.4.5居然不乱码了!被spring坑惨了!吐血~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容