TIBCO EMSライブラリのTIBCO.EMS.dllを使用して、xmlメッセージをTIBCO EMSサーバーのキューに送信しています。これらのメッセージを受信するアプリケーションは、XMLをUTF-8でエンコードする必要があります。 UTF-8 xml自体を生成することは問題ではありませんが、UTF-8形式でデータを保持しながらキューにTextMessageを送信する方法はありません。 (ここでは単純化)私は、次を使用してUTF-8 XMLにオブジェクトをシリアライズするTIBCO EMSを使用してC#でUTF-8テキストメッセージを送信
:
XmlSerializer serializer = new XmlSerializer(data.GetType());
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms, System.Text.Encoding.UTF8);
serializer.Serialize(sw, data);
byte[] result = ms.ToArray();
UTF-8でエンコードされたXMLを含むバイト配列を私に残します。私は.. EMSキューに送信するためにはBytesMessageに
BytesMessage message = _queueSession.CreateBytesMessage();
message.WriteBytes(result);
_queueSender.Send(message);
_queueSession.Commit();
これを書くことができますしかし、それはキューにはBytesMessageになります。私がTextMessageを取得するために見ることができる唯一の方法は、TextMessageクラスを使用することですが、そのクラスのテキストプロパティは、xmlがutf-8エンコーディングを失うという結果になる標準のUnicode文字列です。
誰かがUTF-8でエンコードされたテキストメッセージを送信する方法を知っていますか?