C# MQSeries put 方法问题

本文关键字:问题 方法 put MQSeries | 更新日期: 2023-09-27 18:34:06

我根据不同论坛中的标准描述开发了一个MQRC客户端。

mqMessage = new MQMessage();
//mqMessage.Format = MQC.MQFMT_STRING;
mqMessage.WriteString(message);
//mqMessage.Encoding = 546;
//mqMessage.CharacterSet = 1208;
mqPutMessageOptions = new MQPutMessageOptions();
//putting the message into the mqQueue
mqQueue.Put(mqMessage, mqPutMessageOptions);

上面列出的代码工作正常,我可以将消息发送到适当的队列。但在队列中,消息在源消息的每个字符之间包含一个十六进制值 00。我也尝试更改编码和字符集,但它对问题没有任何影响。

C# MQSeries put 方法问题

这是因为您正在使用WriteString方法来编写消息正文。 WriteString方法使用代码页 1200。每个字符由 2 个字节表示,其中第一个字节将0x00。您可以选择 WriteUTF 方法,因为此方法使用 UTF8 写入消息正文。

仅供参考:如果您使用的是WriteString方法,请确保使用ReadString方法来读取消息正文。同样,如果使用 WriteUTF 编写,则使用 ReadUTF 读取消息正文。