下载HTML页面并将其编码为文件

时间:2015-01-31 08:02:25

标签: c# .net file webclient

我想下载一些使用charset =“UTF-8”的网页 此页面是一个示例:http://en.wikipedia.org/wiki/Billboard_Year-End_Hot_100_singles_of_2003
我总是最终得到这样的特殊字符: Beyoncé而不是Beyoncé
我尝试了以下代码:

WebClient webClient = new WebClient();
webClient.Encoding = System.Text.Encoding.UTF8;
webClient.DownloadFile(url, fileName);

或者这个:

WebClient client = new WebClient();
Byte[] pageData = client.DownloadData(url);
string pageHtml = Encoding.UTF8.GetString(pageData);
System.IO.File.WriteAllText(fileName, pageHtml);

我做错了什么? 我只是想要一种简单的方法来下载网页并将它们写入文件。完成之后,我将从这些文件中提取数据,显然我想要“正常”字符,就像我在原始网页上看到的而不是一些特殊字符。

1 个答案:

答案 0 :(得分:1)

问题是WriteAllText方法不会在文件中以UTF-8编写编码文本。 您应该添加编码:

System.IO.File.WriteAllText(fileName, pageHtml, Encoding.UTF8);