首页 > 解决方案 > Spring Boot @RequestPart 字符集编码

问题描述

我有一个consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE带有POST方法的端点。

有 2 个论点@RequestPart(name = "model", required = true) String jsonPart, @RequestPart(name = "images", required = false) MultipartFile[] images。第一个参数是一个JSON字符串,我将使用它ObjectMapper来解析成一个POJO稍后运行良好的字符串,以及Multipart[]. 唯一的问题是name初始JSON字符串中的值不是正确的编码。

在此处输入图像描述

这是正确解析的JSON字符串multipart-form/data request,在这里我给它赋值White Lé FrÖÖnt

在此处输入图像描述

这是未预期的捐赠中的调试JSON字符串@RequestPartWhite LeÌ FrÃnt

以下是我迄今为止尝试通过网络浏览收集的建议

  1. 尽可能优先地添加CharacterEncodingFilter到 Spring SecurityFilterChain
  2. server.servlet.encoding.enabled=true甚至server.servlet.encoding.force=trueserver.servlet.encoding.force=falseapplication.properties

没有一个单独或集体一起工作。我想到的是,这并没有什么问题,request而是我需要添加到服务器才能使其工作的东西。感谢您的宝贵时间,感谢您的帮助。

标签: spring-boottomcat

解决方案


解决该问题的一种方法可能是将参数类型设置为MultipartFile

@RequestPart(name = "model", required = true) MultipartFile model 

然后获取内容model.getBytes()并将其传递给ObjectMapper.


推荐阅读