编辑:字符正确显示,但在页面中间有<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
行,之后特殊字符变为é
é
1}}(在浏览器中表示正常),但如果通过WebClient下载,则表示为eacute;
(不包含&amp; )。 结束编辑
我正在使用WebClient + RegEx从网页中提取摘录。
但正确设置编码仍会使é
为eacute;
,ç
为ccedil;
,í
为iacute;
等。
我按照DownloadString and 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
即使使用正确的字符集设置也无法正确下载?
答案 0 :(得分:-1)
使用System.Text;
wc.Encoding = Encoding.UTF8;