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

本文关键字:返回 数字 字符 WebClient DownloadString 使用 | 更新日期: 2023-09-27 18:09:52

可能重复:
从互联网下载HTML后字符串中的字符发生变化

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

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:?
...

谢谢。

问候,Danny

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

基本上,服务器以压缩(GZip(格式交付内容。

答案在这里从互联网下载HTML后,字符串中的字符发生了变化,这将为您提供一个替代下载器,用于处理压缩和未压缩的文件。