C# 下载编码为utf-8与iso-8859-1的html

C# 下载编码为utf-8与iso-8859-1的html,c#,encoding,utf-8,webclient,iso-8859-1,C#,Encoding,Utf 8,Webclient,Iso 8859 1,我可以下载一个带有charset=iso-8859-1的网页,并下载带有encoding=utf-8的网页吗? 它能正确下载吗 我是否可以始终使用utf-8编码下载web中的所有编码 我的代码: 网页中的Html页面: <html debug="true"> <head/> <body> <%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%> <title>Untitled Document</tit

我可以下载一个带有
charset=iso-8859-1
的网页,并下载带有
encoding=utf-8
的网页吗? 它能正确下载吗

我是否可以始终使用utf-8编码下载web中的所有编码

我的代码:

网页中的Html页面:

<html debug="true">
<head/>
<body>
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<title>Untitled Document</title>
<meta name="robots" content="noindex"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
............

不,这不行。报告明确指出:

当使用DownloadString或DownloadStringAsync方法下载字符串时,WebClient使用此方法返回的编码将下载的字节数组转换为字符串


为什么它会起作用?您的网页的编码与UTF-8不同。为什么要在这里使用UTF-8?这毫无意义。文档编码为ISO 8859-1,因此这是您阅读文档时需要使用的编码。

@Chani这可能是错误的方法。你需要的是一个字符串,而不是字节数组,对吗?@Chani也不行,原因相同:你只是在手动进行转换,而
WebClient.DownloadString
会自动进行转换。你到底想在这里完成什么?请解释一下你想在你的问题中做什么。我认为这已经足够清楚了。这是工作!!但问题是:正确吗???文本中没有错误?@Chani很简单:如果你使用了错误的编码,它将无法工作。UTF-8和ISO 8859-1恰好非常相似(对于基本的美式英语字符集,它们是相同的)。但是一旦文档使用了“特殊字符”(ä,ß,ø,…),您的代码就会崩溃。@Chanipoz,因为它不是。ISO 8859-1具有不同于UTF-8的字符(基本上,字符代码127之后的所有字符)。
void download() {
        WebClient client = new WebClient();
        client.Encoding = Encoding.UTF8;
        client.DownloadDataCompleted += new DownloadDataCompletedEventHandler(client_DownloadDataCompleted);
        worker.ReportProgress(i);
        client.DownloadDataAsync(new Uri(link), i);
}
void client_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e) {
   Encoding enc = Encoding.UTF8;
   string myString = enc.GetString(e.Result);
}