Mule流中的JAXB混乱编码

Mule流中的JAXB混乱编码,jaxb,mule,anypoint-studio,Jaxb,Mule,Anypoint Studio,我在Mule CE中运行一个流,在编码方面有很大的问题。无论我做什么,我的文件最终都会被非英语字符搞乱 在jaxb对象到xml转换器之前,我的负载在控制台和调试器中看起来很好,但在那之后,一切都搞砸了 ...... <http:request> <object-to-byte-array-transformer encoding="UTF-8" doc:name="Object to Byte Array"/> <object-

我在Mule CE中运行一个流,在编码方面有很大的问题。无论我做什么,我的文件最终都会被非英语字符搞乱

在jaxb对象到xml转换器之前,我的负载在控制台和调试器中看起来很好,但在那之后,一切都搞砸了

    ......   
    <http:request>
    <object-to-byte-array-transformer encoding="UTF-8" doc:name="Object to Byte Array"/>
    <object-to-string-transformer doc:name="String" encoding="UTF-8"/> 
    <json:json-to-object-transformer returnClass="java.util.List"  doc:name="JSON2ObjectList" encoding="UTF-8"/>
    <collection-splitter doc:name="Collection Splitter"/>
    <choice doc:name="Choice">
       <when expression="....">
        <custom-transformer returnClass="se.system.Order.SalesHeader"  class="se.system.Transformer.Map2Order" doc:name="Map2Order" mimeType="application/xml" encoding="UTF-8"/>
        <mulexml:jaxb-object-to-xml-transformer name="orderMarshaller" jaxbContext-ref="JAXB_Context" doc:name="orderMarshaller"  mimeType="text/xml" encoding="UTF-8"/>
    <object-to-string-transformer doc:name="XML2String" encoding="UTF-8"/>
    <set-variable variableName="fileName" value="order-#[function:dateStamp].xml" doc:name="fileName" encoding="UTF-8"/>       
    <file:outbound-endpoint path="${file.ToOrder}" responseTimeout="10000" doc:name="File" outputPattern="#[fileName]" mimeType="text/xml" encoding="UTF-8"/>
010编辑器声称其ANSI DOS(字符混乱,不知道是否值得信任) 我是否错过了jaxb转换器中的某些内容?还是别的地方? 是否可以用Java组件替换它,启动我自己的JAXB上下文,获得封送器并自己处理它? 再也没有线索了

问候

编辑:这个可以处理非英语字符

<mulexml:object-to-xml-transformer doc:name="Object to XML" encoding="UTF-8" />


但不是GregorianCalendar类型或其他对象的my main Objects列表,因此它不是可选的

这似乎是由JAXB转换器不遵守给定编码引起的错误,请参见(第64行)

然而,有点奇怪的是,根据标准,默认编码应该是UTF-8

编码

默认情况下,封送拆收器将在向java.io.OutputStream或java.io.Writer生成XML数据时使用UTF-8编码。使用setProperty API更改这些封送处理操作期间使用的输出编码。客户机应用程序应提供W3CXML1.0建议中定义的、Java平台支持的有效字符编码名称

这可能是这样的

final Marshaller m = jaxbContext.createMarshaller();
m.setProperty(Marshaller.JAXB_ENCODING, encoding);
final Marshaller m = jaxbContext.createMarshaller();
m.setProperty(Marshaller.JAXB_ENCODING, encoding);