是否可以使用MQCCSI_EMBEDDED进行MQPUT?

时间:2016-02-04 15:22:52

标签: xml character-encoding ibm-mq codepages

我正在寻找一种通过队列发布XML消息的简洁方法。目前,我们必须检查XML encoding声明,并确保相应地设置MQMD.ccsid(utf-8 = 1208)。我们还将MQMD.format设置为MQFMT_NONE

这似乎很好,但是有些消费者正在使用MQGMO_CONVERT进行MQGET并且会破坏UTF-8编码。

在使用非短信时,他们应该调用convert选项。但是他们在同一个队列中处理混合文本+非文本。

我想使用特殊的CCSID MQCCSI_EMBEDDED,它指出编码信息是在消息中找到的,正是XML所做的。

不幸的是,将MQPUT上的CCSID设置为该值默认为QMGR的ccsid。

请参阅:CCSID documentation

1 个答案:

答案 0 :(得分:2)

如果在应用程序将消息发送到队列时将MD.Format设置为MQFMT_NONE,那么" get with convert"由接收应用程序不执行转换。

将MD.Format设置为MQFMT_STRING或接收应用程序搞砸了。

另外,您知道如果您在Java中读取一个消息到一个字符串缓冲区中,JVM会将其转换为运行JVM的编码。