编码JMS TextMessage
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码JMS TextMessage相关的知识,希望对你有一定的参考价值。
我正在接收来自JMS MQ队列的消息,这些消息应该是utf-8
编码的。然而,在使用msgText = ((TextMessage)msg).getText();
阅读时,我得到了非标准字符存在的问号。在使用bytemessage
时似乎可以指定编码,但我无法在读出TextMessage
时找到指定编码的方法。有没有办法解决这个问题,还是应该按bytemessages
?
答案
我们尝试将Dfile.encoding="UTF-8"
添加到Websphere
的jvm中,我们补充道
source = new StreamSource(new ByteArrayInputStream(
((TextMessage) msg).getText().getBytes("UTF-8")));
在我们的MessageListener
。这对我们有用,所以我们取出了Dfile.encoding
,它仍然适用于我们。
由于Websphere
的首选最低配置,我们决定以这种方式离开,同时考虑到我们可以通过文件或数据库中的设置更轻松地切换UTF-8
字符串。
另一答案
如果文本未正确解码,那么客户端可能不会使用utf-8编解码器发送消息;这应该工作:
byte[] by = ((TextMessage) msg).getText().getBytes("ISO-8859-1");
String text = new String(by,"UTF-8");
以上是关于编码JMS TextMessage的主要内容,如果未能解决你的问题,请参考以下文章
AMQ之JMS Mesage structure(JMS消息结构)
使用 Jms 发送对象 - HornetQ(性能问题)[关闭]