编辑:字符正确出现,但在页面中间有这一行<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">,之后特殊字符变为é(在浏览器中很好地表示),但如果通过 WebClient 下载é,则表示为eacute;(没有& )。结束编辑
我正在使用 WebClient + RegEx 从网络中提取摘录。
但是正确设置编码仍然会使éas eacute;、ças ccedil;、íasiacute;等。
我按照DownloadString 和 Special Characters示例正确设置了字符集(ISO-8859-1):
System.Net.WebClient wc = new System.Net.WebClient();
wc.DownloadString("https://myurl"); //
var contentType = wc.ResponseHeaders["Content-Type"];
var charset = Regex.Match(contentType, "charset=([^;]+)").Groups[1].Value;
wc.Encoding = Encoding.GetEncoding(charset);
它确实charset像文档的(ISO-8859-1)一样设置,但是当我进行后续操作时DownloadString(我知道我可以在之前设置编码并只做一个wc.DownloadString,但我想遵循接受的答案的示例):
string result = wc.DownloadString("https://myurl");
特殊字符仍然出错。
注意:我使用的是非英语 Windows 10(如果相关)
注意 2:页面的特殊字符在任何浏览器中都能正确显示
我的问题是,为什么WebClient即使使用正确的字符集也不能正确下载?