我的Mule ESB项目中有一小部分组件:
<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>
当消息在/tmp/groovy.out中传递此链时,我可以看到“ЏолученазаЯвка#4041”而不是预期的“Полученазаявка#4041”(“Полученазаявка” - 俄语单词),即unicode存在问题字符输出,ASCII字符没有问题。
当我用HEX编辑器检查/tmp/groovy.out时,我看到所有Russain字符都有1字节长度(unicode必须是2字节长度),即我的Groovy组件的输出不是unicode。
当我使用Echo和Logger组件时,对Mule日志的unicode输出没有问题。同样在SMTP组件中,一切都很完美:我成功收到了来自Mule的unicode字母。
你可以帮我解决在Mule ESB中使用Groovy的unicode输出文件吗?
答案 0 :(得分:0)
你可以尝试:
new File("/tmp/groovy.out").withWriter( 'UTF-8' ) { out ->