Mule4如何为multipart/form-data各part设置编码解决DataWeave解析错误
Mule4 Multipart/Form-data 多Part独立编码处理方案
Mule4 完全支持为 multipart/form-data 的每个 part 单独指定解码编码,你的报错原因确实是 DataWeave 默认用 UTF-8 解析 UTF-16 编码的内容,报错信息中的 ÿ 字符就是 UTF-16 的 BOM 头被 UTF-8 错误解码的表现。
为什么之前的配置不生效
set-variable 组件上的 encoding 属性作用是控制变量输出序列化时的编码,不是用来指定输入内容的解码规则,因此不会生效。
正确处理方案
使用 DataWeave 内置的 read() 函数,手动为每个 part 指定解码编码即可,代码示例如下:
%dw 2.0 output application/json --- // 单独为qualifyResult这个part指定UTF-16编码解析 read(payload.parts.'qualifyResult'.content, "application/json", {encoding: "UTF-16"})
你只需要为不同的 part 分别调用 read() 函数并传入对应的 encoding 参数,就可以实现每个 part 独立编码的处理需求,不需要修改全局配置,也不会影响其他 part 的正常解析。
内容的提问来源于stack exchange,提问作者Kaleb
相关产品推荐
相关产品推荐

