C#MQSeries put方法问题

时间:2014-12-12 13:29:25

标签: c# format hex ibm-mq

我根据不同论坛中的标准描述开发了一个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。我也试图改变编码和字符集,但它没有任何问题的影响。

1 个答案:

答案 0 :(得分:0)

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

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