我在Mule中有一个java组件,它返回一个字符串。当我从java组件中打印该字符串时,它在控制台中以UTF-8的形式读取。但是,当我将其作为有效负载返回时,后续的记录器和所有下游组件都不能再读取UTF-8字符。我已经确认我的项目的编码设置设置为'UTF-8‘。我还:
MULE_ENCODING=UTF-8设置在Java组件之前和之后,同时设置为出站属性和调用属性。message.setEncoding('UTF-8')错误声明它找不到方法setEncoding()。我不知道还需要做什么来确保java组件/转换器产生的有效负载不会被解释或转换成另一种编码.
产出应改为:“杰出的新环境科学家”
该记录器目前输出的是-欧元œ杰出的新环境科学家。例如,我在流的其他部分通过向任何VM端点添加编码=UTF-8来纠正这一点。我还确认这可以在流中其他地方的记录器中正确地打印。
在java组件和后续的mule记录器引用的java类中返回字符串后,似乎发生了一些事情.
发布于 2016-03-08 20:54:19
在java组件之后立即尝试<object-to-string-transformer encoding="..." />
发布于 2017-06-14 09:01:31
我在编码方面也有问题。它是,不是完全类似于您的情况,但我采取了这个行动,它对我起作用。(字节到数组使用java序列化)
<set-property propertyName="MULE_ENCODING" value="UTF-8" doc:name="Property" />
<byte-array-to-string-transformer encoding="UTF-8" doc:name="Byte Array to String"/>我用这句话来传达信息。
此外,包装器中还有一些属性,您也可以设置它。
发布于 2016-03-10 01:18:37
你是怎么读RSS提要的?如果它使用的是端点,那么尝试为该端点设置“编码”属性吗?
https://stackoverflow.com/questions/35877629
复制相似问题