我试图使用带有MsmqIntegrationbinding的WCF在MSMQ上发布一条消息。发送可以工作,但当我查看发送到队列的消息时。编码不正确。
是否可以将消息编码更改为UTF-16?我已经尝试过使用自定义绑定来解决这个问题。这解决不了我的问题。我粘贴了下面使用的自定义绑定。
<binding name="CustomMsmqIntegrationBinding">
<textMessageEncoding messageVersion="None" writeEncoding="utf-16" />
<msmqIntegration exactlyOnce="true">
<msmqTransportSecurity msmqAuthenticationMode="None" msmqProtectionLevel="None" />
</msmqIntegration>
</binding>发布于 2012-03-26 16:17:50
问题是,你有什么理由强迫你使用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倍。
https://stackoverflow.com/questions/9871739
复制相似问题