C#MQSeries put方法问题

C#MQSeries put方法问题,c#,format,hex,ibm-mq,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

我已经根据另一个论坛中的标准描述开发了一个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
读取消息正文