C# ASP.NET Web API和UTF16编码

C# ASP.NET Web API和UTF16编码,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我有一个ASP.NET web API正在运行,并且有一个客户端遇到以下问题: {"model":["Unable to translate bytes [E9] at index 300 from specified code page to Unicode."]} 异常似乎发生在模型绑定期间,这是我端的默认无任何自定义 客户端也在运行.NET,他们说内容是以UTF16的形式发送的……但他们没有包括HTTP头来表明这一点。直到他们开始在内容中加入特殊角色,一切都很顺利 我的问题是如何处理这

我有一个ASP.NET web API正在运行,并且有一个客户端遇到以下问题:

{"model":["Unable to translate bytes [E9] 
at index 300 from specified code page to Unicode."]}
异常似乎发生在模型绑定期间,这是我端的默认无任何自定义

客户端也在运行.NET,他们说内容是以
UTF16
的形式发送的……但他们没有包括HTTP头来表明这一点。直到他们开始在内容中加入特殊角色,一切都很顺利

我的问题是如何处理这个问题。最初我打算添加一个
DelegateHandler
,它将检测这个客户机,并以某种方式将content-type/charset设置为
UTF16
,但这并不是平移。然后,我认为可以从DelegateHandler中将请求主体转换为
UTF8
,但我已经了解到,修改handler中的内容是不可能的,也不推荐这样做

由于问题出现在模型绑定期间,我想知道实现自定义模型绑定器是否合适


谢谢你的帮助

内置格式化程序使用的默认编码是UTF-8。您可以轻松地将其更改为UTF 16。您可以通过更改MediaTypeFormatter类上的SupportEncodings属性,以每个格式化程序为基础进行更改


这可以帮助您。

…我还应该声明,客户端此时无法添加标头,因为他们已经投入生产,并且遇到了此问题。