我根据不同论坛中的标准描述开发了一个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);
上面列出的代码工作正常,我可以将消息发送到approrpiate队列。 但是在队列中,消息在源消息中的每个字符之间包含十六进制值00。我也试图改变编码和字符集,但它没有任何问题的影响。
答案 0 :(得分:0)
这是因为您使用WriteString
方法编写邮件正文。 WriteString
方法使用代码页1200.每个字符由2个字节表示,其中第一个字节将是0x00。您可以选择WriteUTF
方法,因为此方法使用UTF8写入邮件正文。
仅供参考:如果您使用的是WriteString
方法,请确保使用ReadString
方法来阅读邮件正文。同样,如果您使用WriteUTF
进行编写,则使用ReadUTF
来阅读邮件正文。