4

これは、他の韓国語のエンコードに関する質問とは異なる場合があります。

私がスクレイピングしなければならないこのサイトがあり、それは韓国語です。

彼らのサイトの例文は、この「개인정보보호를 위해 뒤로가기 버튼 대신 검색결과 화면 상단과 하단의 이전 버튼읜 사보하싘사다」です。

サイトをスクレイピングするために HttpWebRequest と HttpWebResponse を使用しています。

これは私がhtmlを取得する方法です

-- 部分的なコード --

using (Stream data = resp.GetResponseStream())
{
    response.Append(new StreamReader(data, Encoding.GetEncoding(code), true).ReadToEnd());
}

今私の問題は、正しい韓国語の文字を取得していないことです。「コード」変数では、MSDN http://msdn.microsoft.com/en-us/library/system.text.encoding.aspxのコード ページをベースにしています(絞り込みます)。

韓国語のコード ページは次のとおりです: 51949、50225、20949、20833、10003、949

しかし、まだ正しい韓国語の文字を取得していませんか? 何が問題だと思いますか?

4

2 に答える 2

3

ページが特定の韓国語エンコーディングではなく、Unicode エンコーディングの 1 つである可能性が非常に高くなります。

特定のコード ページの代わりにEncoding.UTF8、 (UTF-16) を試してください。Encoding.DefaultともありますがEncoding.UTF7Encoding.UTF32それほど一般的ではありません。

確実にするには、サーバーから返された content-type のメタ タグとヘッダーを調べます。


更新(コメントから収集):

content-type ヘッダーがEUC-KRであるため、対応するコードページは 51949 であり、これを使用してページを取得する必要があります。

これをファイルに書き出すかどうかは明確ではありませんでした。ファイルを書き出すときに同じエンコーディングを使用するかbyte[]、元のファイル エンコーディングから出力ファイル エンコーディングに変換する必要があります ( を使用Encoding.Convert)。

于 2012-04-05T15:51:38.950 に答える
0

まったく同じ問題を抱えている間、私は以下のコードでそれを完成させました:

Encoding.UTF8.GetString(DownloadData(URL));

これにより、WebClient GET 要求の出力が UTF8 エンコーディングに直接変換されます。

于 2016-05-23T07:39:44.667 に答える