mule esb 中的输出编码问题
Output Encoding issue in mule esb
我曾经在 Mule ESB 中使用 "Transform Message" 节点创建 XML。
%dw 1.0
%输出application/xml
项目:{
名称:payload."profile_name",
id: payload."profile_Id"
}
这显示了输出 xml 作为
的预览
<?xml version='1.0' encoding='windows-1252'?>
<item>
<name>
<profile_name>????</profile_name>
</name>
<id>
<profile_Id>1</profile_Id>
</id>
</item>
这导致编码为 'windows-1252' 我如何在输出 xml 中将编码更改为 'UTF-8'?
转到您的 Anypoint Studio 文件夹。
编辑AnypointStudio.ini
添加:
-Dfile.encoding=UTF-8
重启
简单,在输出行中定义编码:
%dw 1.0
%output application/xml encoding="utf-8"
---
name: payload.name?
结果:
<?xml version='1.0' encoding='utf-8'?>
<name>false</name>
对于运行时高于 3.8.4 的数据编织,我实现了这个解决方案:
- 将输出设置为变量:
Output FlowVar - fv_itemName_xml
转换消息内部:
'%output application/xml writeDeclaration=false
item: { name: payload."profile_name", id: payload."profile_Id" }
输出将是:
<item>
<name>
<profile_name>????</profile_name>
</name>
<id>
<profile_Id>1</profile_Id>
</id>
</item>
然后定义一个变量如下:
姓名:fv_outputName_xml
值:#[flowVars.fv_itemName_xml]
编码:ISO 10646/Unicode(UTF-8)
Mime 类型:application/xml
并且您可以更好地控制编码和 Mime 类型。
在我的例子中,我需要将它输入到存储过程中,并且在没有这个解决方法的情况下不断收到错误:
System.Data.SqlClient.SqlException (0x80131904): XML parsing: line 1,
character 39, unable to switch the encoding
我曾经在 Mule ESB 中使用 "Transform Message" 节点创建 XML。
%dw 1.0 %输出application/xml
项目:{ 名称:payload."profile_name", id: payload."profile_Id" }
这显示了输出 xml 作为
的预览<?xml version='1.0' encoding='windows-1252'?>
<item>
<name>
<profile_name>????</profile_name>
</name>
<id>
<profile_Id>1</profile_Id>
</id>
</item>
这导致编码为 'windows-1252' 我如何在输出 xml 中将编码更改为 'UTF-8'?
转到您的 Anypoint Studio 文件夹。
编辑AnypointStudio.ini
添加: -Dfile.encoding=UTF-8
重启
简单,在输出行中定义编码:
%dw 1.0
%output application/xml encoding="utf-8"
---
name: payload.name?
结果:
<?xml version='1.0' encoding='utf-8'?>
<name>false</name>
对于运行时高于 3.8.4 的数据编织,我实现了这个解决方案:
- 将输出设置为变量:
Output FlowVar - fv_itemName_xml
转换消息内部:
'%output application/xml writeDeclaration=false
item: { name: payload."profile_name", id: payload."profile_Id" }
输出将是:
<item>
<name>
<profile_name>????</profile_name>
</name>
<id>
<profile_Id>1</profile_Id>
</id>
</item>
然后定义一个变量如下:
姓名:fv_outputName_xml
值:#[flowVars.fv_itemName_xml]
编码:ISO 10646/Unicode(UTF-8)
Mime 类型:application/xml
并且您可以更好地控制编码和 Mime 类型。
在我的例子中,我需要将它输入到存储过程中,并且在没有这个解决方法的情况下不断收到错误:
System.Data.SqlClient.SqlException (0x80131904): XML parsing: line 1, character 39, unable to switch the encoding