使用WebClient.DownloadString()有时会返回奇数字符

时间:2011-09-28 14:53:35

标签: c# .net webclient webclient-download

  

可能重复:
  Characters in string changed after downloading HTML from the internet

要重现我的问题,请查看以下代码段:

const string url = "http://serienjunkies.org/serie/glee/";
var webclient = new WebClient();
var source = webclient.DownloadString(url);
Console.WriteLine(source.Substring(0, 200);

有时候(使用完全相同的代码)我得到正确的html源代码,其他只是一个带有奇数字符的不可读字符串。如果你得到一个 - 等待几秒钟到一分钟 - 那么你将得到另一个。

预期结果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
...

另一个结果(复制,从cmd粘贴):

▼      ♥????????y]2?? em§?.f♦∟3Hf??J?XRM*???%??9 Gf¶##R1p?-??;?♥???♀???U?M?I?s &?#9???⌂?????fg????o????????????;}-????v⌂???^go????????zu???????tD?u^M?h:?
...

谢谢。

亲切的问候,丹尼

1 个答案:

答案 0 :(得分:2)

服务器基本上以压缩(GZip)格式提供内容。

此处Characters in string changed after downloading HTML from the internet的答案将为您提供一个替代下载程序,用于处理压缩和未压缩的文件。