[英]Cyrillic symbols show as question marks. Content-Type:text/xml;charset=windows-1251;
我知道这是一个很受欢迎的问题,但我仍然没有找到任何解决方案。
所以我得到 xml 文件作为 api 的响应,但西里尔文符号表示为问号。
我尝试使用Encoding
class 转换源字节数组。
using (var httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(uriBuilder.Uri);
var responseBytes = await response.Content.ReadAsByteArrayAsync();
var responseText = Encoding.UTF7.GetString(responseBytes);
var utf8 = Encoding.UTF8.GetString(responseBytes);
var unicode = Encoding.Unicode.GetString(responseBytes);
var ascii = Encoding.ASCII.GetString(responseBytes);
var defaultt = Encoding.Default.GetString(responseBytes);
}
但仍然没有运气。
字符集响应:
Content-Type: text/xml;charset=windows-1251;
有人可以提出任何解决方案吗?
更新:答案是我在下面的评论
如此处所述,您可以使用Encoding.GetEncoding(1251).GetString(responseBytes);
获得所需的编码。
请记住,操作系统需要支持代码页。
所以解决方案是:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var encoding = Encoding.GetEncoding("windows-1251");
var result = encoding.GetString(responseBytes);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.