spring-boot - 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
字符串@RequestPart
White LeÌ FrÃnt
以下是我迄今为止尝试通过网络浏览收集的建议
- 尽可能优先地添加
CharacterEncodingFilter
到 Spring SecurityFilterChain
server.servlet.encoding.enabled=true
甚至server.servlet.encoding.force=true
在server.servlet.encoding.force=false
application.properties
没有一个单独或集体一起工作。我想到的是,这并没有什么问题,request
而是我需要添加到服务器才能使其工作的东西。感谢您的宝贵时间,感谢您的帮助。
解决方案
解决该问题的一种方法可能是将参数类型设置为MultipartFile
@RequestPart(name = "model", required = true) MultipartFile model
然后获取内容model.getBytes()
并将其传递给ObjectMapper
.