0

编辑:字符正确出现,但在页面中间有这一行<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">,之后特殊字符变为é(在浏览器中很好地表示),但如果通过 WebClient 下载&eacute;,则表示为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即使使用正确的字符集也不能正确下载?

4

1 回答 1

-1

使用 System.Text;

wc.Encoding = 编码.UTF8;

于 2019-04-24T20:58:27.803 回答