mule esb中的输出编码问题

时间:2015-12-14 06:44:12

标签: mule esb mule-component

我曾经使用Mule ESB中的“转换消息”节点创建XML。

%dw 1.0 %output application / xml

项目:{     name: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'如何在我的outpout xml中将编码更改为'UTF-8'?

3 个答案:

答案 0 :(得分:6)

转到Anypoint Studio文件夹。

编辑AnypointStudio.ini

添加: -Dfile.encoding = UTF-8

重新启动

答案 1 :(得分:1)

简单,在输出行中定义编码:

<?xml version='1.0' encoding='utf-8'?>
<name>false</name>

结果:

imageViewFlower

答案 2 :(得分:0)

对于3.8.4以上版本的运行时中的dataweave,我实现了以下解决方案:

  1. 将输出设置为变量:

Output FlowVar-fv_itemName_xml

  1. 转换消息内:

    '%output application / xml writeDeclaration = false

    项目:{名称:payload。“ profile_name”,id:payload。“ profile_Id”}

输出将是:

<item>
  <name>
    <profile_name>????</profile_name>
  </name>
  <id>
    <profile_Id>1</profile_Id>
  </id>
</item>
  1. 然后定义如下变量:

    名称:fv_outputName_xml

    值:#[flowVars.fv_itemName_xml]

    编码:ISO 10646 / Unicode(UTF-8)

    MIME类型:application / xml

您可以更好地控制编码和Mime类型。

就我而言,我需要将其输入到存储过程中,而没有这种工作环境不断收到错误:

System.Data.SqlClient.SqlException(0x80131904):XML解析:第1行 字符39,无法切换编码