首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpWebResponse编码问题

HttpWebResponse编码问题
EN

Stack Overflow用户
提问于 2011-04-22 20:57:39
回答 4查看 4.3K关注 0票数 4

我对编码有问题。当我得到网站的源代码时,我有:

我将编码设置为UTF8,如下所示:

代码语言:javascript
复制
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            string sourceCode = reader.ReadToEnd();

谢谢你的帮忙!

EN

回答 4

Stack Overflow用户

发布于 2011-04-22 21:14:54

尝试使用指定的编码:

代码语言:javascript
复制
Encoding encoding;
try
{
    encoding = Encoding.GetEncoding(response.CharacterSet);
}
catch (ArgumentException)
{
    // Cannot determine encoding, use dafault
    encoding = Encoding.UTF8;
}

StreamReader reader = new StreamReader(response.GetResponseStream(), encoding);
string sourceCode = reader.ReadToEnd();

如果您正在以某种方式接受gzip,这可能会有所帮助:(我自己还没有尝试过它,诚然,它没有多大意义,因为您的编码不是gzip?!)

代码语言:javascript
复制
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
票数 6
EN

Stack Overflow用户

发布于 2016-02-09 22:09:23

我也有同样的问题,我试着改变编码,从源代码到结果,我什么都没有得到。最后,我遇到了一条线索,这条线索引导我遵循……看看这里..。.NET: Is it possible to get HttpWebRequest to automatically decompress gzip'd responses?

在从请求中检索响应之前,您需要使用以下代码。

代码语言:javascript
复制
rqst.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;

因为一旦我们使用接受编码'gzip‘或'deflate',数据就会被压缩,并变成我们无法读取的数据。所以我们需要解压它们。

票数 3
EN

Stack Overflow用户

发布于 2011-04-22 21:13:16

但是响应可能不是UTF-8。您是否检查了response对象的CharacterSetContentType属性,以确保使用正确的编码?

在任何情况下,这两个字符看起来都像值03和08的代码页437个字符。看起来你的数据流中有一些二进制数据。

为了进行调试,我建议您使用Stream.Read将响应中的前几个字节读入一个字节数组,然后检查这些值以查看所获得的值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5755635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档