0

でウェブページをダウンロードしcharset=iso-8859-1、でダウンロードできますencoding=utf-8か?正しくダウンロードされますか?

Web内のすべてのエンコーディングに対して常に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"/>
............

機能:

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);
}
4

1 に答える 1

2

いいえ、これはうまくいきません。のドキュメントには、WebClient.Encoding次のように明確に記載されています。

DownloadString または DownloadStringAsync メソッドを使用して文字列がダウンロードされると、WebClient はこれによって返された Encoding を使用して、ダウンロードされた Byte 配列を文字列に変換します。

そして、なぜそれが機能する必要があるのですか?Web ページのエンコーディングが UTF-8 とは異なります。なぜここで UTF-8 を使用したいのですか? 意味がない。ドキュメントは ISO 8859-1 としてエンコードされているため、これを読み取るために使用する必要があるエンコードです。

于 2012-05-21T08:45:46.420 に答える