Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Http GET方法返回文件';s的内容编码错误_C#_Http_Httpclient - Fatal编程技术网

C# Http GET方法返回文件';s的内容编码错误

C# Http GET方法返回文件';s的内容编码错误,c#,http,httpclient,C#,Http,Httpclient,我有一个简单的GET请求,返回.txt文件的内容。您可以使用浏览器或小提琴手进行尝试: 该文件的编码为cp-1251。当我试图得到它时,我看到smth是这样的: 如何在C#中修改HttpRequest以获得所需编码的文本?或者只返回字节以手动转换它们。HttpClient有可能吗 另一个附件: 如果您无法更改服务器发送的字符集,是的,您仍然可以请求字节,然后选择要应用的编码: Encoding.RegisterProvider(CodePagesEncodingProvider.Instan

我有一个简单的GET请求,返回.txt文件的内容。您可以使用浏览器或小提琴手进行尝试: 该文件的编码为cp-1251。当我试图得到它时,我看到smth是这样的:

如何在C#中修改HttpRequest以获得所需编码的文本?或者只返回字节以手动转换它们。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);
}
参考资料:

.NET Framework类库提供了一个静态属性CodePagesEncodingProvider.Instance,该属性返回一个EncodingProvider对象,该对象使桌面.NET Framework类库上的整套编码可供.NET核心应用程序使用


请单击“原始”并在问题中显示请求和响应。同时展示你目前拥有的C代码。那么你的问题是什么?如何更改从ASP.NET生成的响应的编码,或如何更改使用HttpClient下载的字符串的编码?如何更改响应的编码。(老实说,我更喜欢任何解决方案,只是为了获得文本的初始视图)顺便说一句,对不起,我不能上传源代码,因为它是一个私人项目的一部分。此外,使用Http的所有操作都被提取到单独的文件中,很难向您显示整个画面。长话短说,这个代码片段可以描述我的问题(上次更新),谢谢@Kimberly。这正是我想要的(在服务器的字符集不可触摸的情况下)