Http GET 方法 returns 编码错误的文件内容
Http GET method returns file's content with wrong encoding
我有一个简单的 GET 请求 returns .txt 文件的内容。您可以使用浏览器或 fiddler 进行尝试:http://134.17.24.10:8054/Documents/13f37b0c-4b04-42e1-a86b-3658a67770da/1.txt
这个文件的编码是cp-1251。当我试图得到它时,我看到了这样的东西:
response text view
如何在 C# 中修改 HttpRequest 以获得我想要的编码中的文本?或者只是 return 字节,以便手动转换它们。 HttpClient 可以吗?
另一个附件:
如果您不能更改服务器发送的字符集,是的,您仍然可以只请求字节,然后选择要应用的编码:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
using (var httpClient = new HttpClient())
{
var response = await httpClient.GetByteArrayAsync(RequestUrl);
var responseString = Encoding.GetEncoding("windows-1251").GetString(response, 0, response.Length - 1);
Console.WriteLine(responseString);
}
参考资料:
The .NET Framework Class Library provides one static property, CodePagesEncodingProvider.Instance, that returns an EncodingProvider object that makes the full set of encodings available on the desktop .NET Framework Class Library available to .NET Core applications.
我有一个简单的 GET 请求 returns .txt 文件的内容。您可以使用浏览器或 fiddler 进行尝试:http://134.17.24.10:8054/Documents/13f37b0c-4b04-42e1-a86b-3658a67770da/1.txt 这个文件的编码是cp-1251。当我试图得到它时,我看到了这样的东西: response text view
如何在 C# 中修改 HttpRequest 以获得我想要的编码中的文本?或者只是 return 字节,以便手动转换它们。 HttpClient 可以吗?
另一个附件:
如果您不能更改服务器发送的字符集,是的,您仍然可以只请求字节,然后选择要应用的编码:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
using (var httpClient = new HttpClient())
{
var response = await httpClient.GetByteArrayAsync(RequestUrl);
var responseString = Encoding.GetEncoding("windows-1251").GetString(response, 0, response.Length - 1);
Console.WriteLine(responseString);
}
参考资料:
The .NET Framework Class Library provides one static property, CodePagesEncodingProvider.Instance, that returns an EncodingProvider object that makes the full set of encodings available on the desktop .NET Framework Class Library available to .NET Core applications.