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。我也尝试更改编码和字符集,但它对问题没有任何影响。
这是因为您正在使用WriteString
方法来编写消息正文。 WriteString
方法使用代码页 1200。每个字符由 2 个字节表示,其中第一个字节将0x00。您可以选择 WriteUTF
方法,因为此方法使用 UTF8 写入消息正文。
仅供参考:如果您使用的是WriteString
方法,请确保使用ReadString
方法来读取消息正文。同样,如果使用 WriteUTF
编写,则使用 ReadUTF
读取消息正文。