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 论坛中看到过此链接:“如何将 UTF-16 作为 WCF 数据服务的默认编码”。?

作为一种可能的解决方案,它建议:

客户端可以在请求中发送 Accept-Charset: utf-16 标头,服务器将使用 UTF-16 响应。

接受的帖子说:

[...] UTF-8 支持与 UTF-16 完全相同的字符集。因此,除非您的客户端只能使用 UTF-16 而不能使用 UTF-8,否则没有理由使用 UTF-16 而不是 UTF-8。相反,事实上,UTF-16 的有效载荷几乎是 UTF-8 的 2 倍。

于 2012-03-26T16:17:50.783 回答