我想下载一些使用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);
我做错了什么? 我只是想要一种简单的方法来下载网页并将它们写入文件。完成之后,我将从这些文件中提取数据,显然我想要“正常”字符,就像我在原始网页上看到的而不是一些特殊字符。
答案 0 :(得分:1)
问题是WriteAllText方法不会在文件中以UTF-8编写编码文本。 您应该添加编码:
System.IO.File.WriteAllText(fileName, pageHtml, Encoding.UTF8);