MQMessage queueMessage = new MQMessage();
queueMessage.WriteString(strInputMsg);
queueMessage.Format = MQC.MQFMT_STRING;
MQPutMessageOptions queuePutMessageOptions = new MQPutMessageOptions();
Queue.Put(queueMessage, queuePutMessageOptions);
使用C#,與上面的代碼中,當我輸入該消息放入隊列中,消息的數據長度是3600通過C#把消息在WebSphere MQ具有比手動把相同的消息
不同的數據長度當我手動輸入信息到通過右鍵單擊隊列,然後選擇把測試消息選項,隊列,消息的數據長度爲1799
我真的很困惑,爲什麼是這種情況。這兩種情況下的消息都是一個帶聲明的xml字符串。在Notepad ++中,有1811個字符包括聲明。當我在輸入隊列之前在調試器中查看消息時,消息將被轉換爲xml,而無需任何行或返回車廂。
我創建使用XML字符串:
//converts string message into xml by serializing it
public string GetMessage(MyMessage messageInstance)
{
// Serialize the request
XmlSerializer xsr = new XmlSerializer(typeof(MyMessage));
MemoryStream memoryStream = new MemoryStream();
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xsr.Serialize(xmlTextWriter, messageInstance);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
string XmlizedString = new UTF8Encoding().GetString((memoryStream.ToArray());
// Encode the xml
Encoding utf = Encoding.UTF8;
byte[] utfBytes = utf.GetBytes(XmlizedString);
// Load the document (XmlResolver is set to null to ingore DTD)
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.XmlResolver = null;
xmlDoc.LoadXml(utf.GetString(utfBytes));
return utf.GetString(utfBytes);
我缺少的是增加額外的角色我的C#實現什麼?
謝謝。
UTF8 vs ASCII? – Matten