2

MsmqIntegrationbinding で WCF を使用して MSMQ にメッセージを投稿しようとしています。送信は機能しますが、キューに送信されたメッセージを見ると. エンコーディングが正しくありません。

メッセージのエンコーディングを UTF-16 に変更することはできますか? カスタムバインディングを使用してこれを解決しようとしました。これは私の問題を解決しませんでした。以下に使用したカスタムバインディングを貼り付けました。

<binding name="CustomMsmqIntegrationBinding">   
   <textMessageEncoding messageVersion="None" writeEncoding="utf-16" />
   <msmqIntegration exactlyOnce="true">
      <msmqTransportSecurity msmqAuthenticationMode="None" msmqProtectionLevel="None" />
   </msmqIntegration>
</binding>
4

1 に答える 1

2

問題は、UTF-16を正確に使用するように強制する理由がありますか?

MSDNフォーラムでこのリンクを見たことがありますか:「WCFデータサービスのデフォルトエンコーディングとしてUTF-16を作成する方法」。

考えられる解決策として、次のことを提案します。

クライアントはリクエストでAccept-Charset:utf-16ヘッダーを送信でき、サーバーはUTF-16を使用して応答します。

そして受け入れられた投稿は言う:

[...] UTF-8は、UTF-16とまったく同じ文字セットをサポートします。したがって、UTF-8ではなくUTF-16のみを使用できるクライアントがない限り、UTF-8ではなくUTF-16を使用する理由はありません。それどころか、UTF-16のペイロードはUTF-8のほぼ2倍です。

于 2012-03-26T16:17:50.783 に答える