简体   繁体   中英

Mule ESB Groovy Unicode output issue

I have this little chain of components in my Mule ESB project:

<set-payload value="Получена заявка ##[sessionVars['ticketID']]" doc:name="Set SMS Text"/>
<scripting:transformer doc:name="Send SMS" ignoreBadInput="true">
    <scripting:script engine="Groovy"><![CDATA[
        new File("/tmp/groovy.out").withWriter { out ->
            out.println message.payload
        }
    ]]></scripting:script>
</scripting:transformer>

When message passes this chain in /tmp/groovy.out I can see "Џолучена заЯвка #4041" instead of expected "Получена заявка #4041" ("Получена заявка" - Russian words), ie there is a problem with unicode chars output and there are no problems with ASCII chars.

When I check /tmp/groovy.out with HEX editor I see that all Russain chars has 1-byte lenght (in unicode that must be 2-bytes length), ie output of my Groovy component is not unicode.

There is no problem with unicode output to Mule log when I user Echo and Logger components. Also in SMTP component everything is perfect: I successfully receive letters in unicode from Mule.

Can you help me with unicode output to file with Groovy in Mule ESB?

你能试一下吗:

new File("/tmp/groovy.out").withWriter( 'UTF-8' ) { out ->

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM