首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mule中的Java组件不使用项目的UTF-8编码

Mule中的Java组件不使用项目的UTF-8编码
EN

Stack Overflow用户
提问于 2016-03-08 20:43:23
回答 3查看 1.2K关注 0票数 1

我在Mule中有一个java组件,它返回一个字符串。当我从java组件中打印该字符串时,它在控制台中以UTF-8的形式读取。但是,当我将其作为有效负载返回时,后续的记录器和所有下游组件都不能再读取UTF-8字符。我已经确认我的项目的编码设置设置为'UTF-8‘。我还:

  1. MULE_ENCODING=UTF-8设置在Java组件之前和之后,同时设置为出站属性和调用属性。
  2. 在mule表达式中设置消息的编码,但失败的message.setEncoding('UTF-8')错误声明它找不到方法setEncoding()
  3. 在java组件中使用以下内容: eventContext.getMessage().setPayload(myString);eventContext.getMessage().setEncoding("UTF-8");返回eventContext.getMessage().getPayload();
  4. 切换到java转换器而不是组件,在转换器上使用下面的配置,显式地将编码设置为"UTF-8“。

我不知道还需要做什么来确保java组件/转换器产生的有效负载不会被解释或转换成另一种编码.

产出应改为:“杰出的新环境科学家”

该记录器目前输出的是-欧元œ杰出的新环境科学家。例如,我在流的其他部分通过向任何VM端点添加编码=UTF-8来纠正这一点。我还确认这可以在流中其他地方的记录器中正确地打印。

在java组件和后续的mule记录器引用的java类中返回字符串后,似乎发生了一些事情.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-08 20:54:19

在java组件之后立即尝试<object-to-string-transformer encoding="..." />

票数 1
EN

Stack Overflow用户

发布于 2017-06-14 09:01:31

我在编码方面也有问题。它是,不是完全类似于您的情况,但我采取了这个行动,它对我起作用。(字节到数组使用java序列化)

代码语言:javascript
复制
<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"/>

我用这句话来传达信息。

此外,包装器中还有一些属性,您也可以设置它。

票数 1
EN

Stack Overflow用户

发布于 2016-03-10 01:18:37

你是怎么读RSS提要的?如果它使用的是端点,那么尝试为该端点设置“编码”属性吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35877629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档