我正在使用 RestSharp 版本 105.1.0 (.NET 4.5.1) 对我们自己的 API 进行 REST 调用。此 API 发送带有以下特别感兴趣的标头的响应:Content-Type: application/json; Charset=iso-8859-1
。如您所见,此响应的字符集设置为 iso-8859-1。
我希望从 RestSharp 获得的响应使用此编码来解码响应内容。然而,当我看到RestResponse.Content
属性,某些字符显示为 �。据我所知,这意味着使用了错误的编码。当我尝试解码时RawBytes
手动使用正确的编码,我确实得到了正确的字符串。
我尝试手动设置 iso-8859-1Encoding
财产在RestClient
但无济于事。
如何确保 RestSharp 的响应使用正确的编码进行解码?
示例代码:
// Setting the Encoding here does not change the result
var client = new RestClient(myApiUri) { Encoding = Encoding.GetEncoding("iso-8859-1") };
var request = new RestRequest(Method.GET);
var restResponse = client.Execute(request);
Console.WriteLine(restResponse.Content)
// Outputs content as string with wrong encoding
// some characters display as �
提前致谢!
我也遇到了这个问题,要解决必须获取它在 IRestResponse 对象中引入的字节数组并将其转换为我想要的编码
var request = new RestRequest(Method.GET);
var restResponse = client.Execute(request);
Encoding encoding = Encoding.GetEncoding("ISO-8859-1");
var result = encoding.GetString(response.RawBytes);
Console.WriteLine(result);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)