Encoding 在Mule4中无法识别DataWeave多部分/表单数据输入编码

Encoding 在Mule4中无法识别DataWeave多部分/表单数据输入编码,encoding,mule,multipartform-data,dataweave,mule4,Encoding,Mule,Multipartform Data,Dataweave,Mule4,是否有一个选项来设置接收到侦听器的多部分/表单数据中的部分编码 我收到了这种多份文件: ----------------------------180928595588258919887097 Content-Disposition: form-data; name="qualifyResult"; filename="json1.json" Content-Type: application/json { "json1":

是否有一个选项来设置接收到侦听器的多部分/表单数据中的部分编码

我收到了这种多份文件:

----------------------------180928595588258919887097
Content-Disposition: form-data; name="qualifyResult"; filename="json1.json"
Content-Type: application/json

{
    "json1": "1"
}

----------------------------180928595588258919887097
Content-Disposition: form-data; name="raceOneResult"; filename="json2.json"
Content-Type: application/json

{
    "json2": "2"
}

----------------------------180928595588258919887097--
这两个JSON文件都在UTF-16中,因此当我尝试使用以下DataWeave脚本将文件数据存储到变量时:

%dw 2.0
output application/json
---
payload.parts.'qualifyResult'.content
它返回此类错误:

org.mule.runtime.core.api.expression.ExpressionRuntimeException: "Unexpected character 'ÿ' at qualifyResult@[1:1] (line:column), expected false or true or null or {...} or [...] or number but was , while reading `qualifyResult` as Json.
 
1| 
   ^" evaluating expression: "%dw 2.0

output application/json

---

payload.parts.'qualifyResult'.content".
所以我认为DataWeave只是尝试使用UTF-8编码而不是UTF-16来读取数据。 我还尝试在使用DataWeave的set变量组件上设置编码(如下面的代码片段所示),但这并没有改变任何事情

<set-variable value="#[%dw 2.0
&#10;output application/json
&#10;---
&#10;payload.parts.'qualifyResult'.content]" doc:name="qualifyResult" doc:id="34800576-0539-4f95-8977-8353a255d83d" variableName="qualifyResult" encoding="UTF-16"/>

如何以正确的编码处理入站文件数据?
感谢所有有效的答案。

看起来编码并没有问题。从错误中提到的字符
ÿ
看来,它是数据开头a的一部分,用于指示UTF编码。DataWeave目前不支持BOM,并且认为它是垃圾,因此它会抛出一个错误。如果无法避免将有效负载与BOM一起发送,则可能需要一些Java方法或脚本将其删除,然后再尝试使用DataWeave对其进行解析。

您可以尝试在DataWeave中将编码设置为“UTF-16”,在其中尝试提取“qualifyResult”。内容值。例如,转换组件中的头部分将如下所示-->%dw 2.0 output application/json encoding=“UTF-16”谢谢@TheOtherGuy,已经尝试过这个,但没有成功
output application/json encoding=“UTF-16”