2012-04-05 13 views
2

これは他の韓国語のエンコーディングの質問と異なる場合があります。C# - 韓国語のエンコーディング

このサイトがあります。スクレイプしなければならないのは韓国語です。

サイト内の例文は です。「個人情報保護を行うためには、ボタンのみをクリックして結果画面上部と下部のボタンを使用してください。」

私は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

が、それでも正しい韓国語の文字を取得していないのですか?あなたは何が問題だと思いますか?

+0

ページはどのようなエンコードですか?メタタグはありますか? httpヘッダーはどうですか? – Oded

+0

それはただEUC-KRに向いていますが、私はすでにその名前Encoding.GetEncoding( "EUC-KR")を使用していて、間違った韓国語の文字を持っています。 ?踰?寃?寃? ?ㅼ|寃? ⑸??えええええええええええええええええええええええええええええと> ㅻㅻ湲踰踰寃寃곌???硫硫硫??????????? –

+0

スクレイピングを実行しているコンピュータにそのコードページがインストールされていますか? – Oded

答えて

3

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

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

確かに、サーバーによって返されるコンテンツタイプのメタタグとヘッダーを調べてください。


(commmentsから集められた)更新:

Content-TypeヘッダがEUC-KRあるので、対応するコードページが51949であり、これは、ページを取得するために使用するために必要なものです。

あなたがファイルにこれを書いていることは明らかではなかった - あなたは、ファイルを書き出すとき同じエンコーディングを使用するか、またはbyte[]は(Encoding.Convertを使用して)出力ファイルのエンコードに元から変換する必要があります。私は以下のコードでそれを終えた正確に同じ問題を抱えながら

+0

this is the content-type header "Content-Type:text/html; charset = EUC-KR」 –

+0

@JaysonRagasa - That would appear to be codepage 51949. – Oded

+0

When I used the Default。 I get this "ジャムチェトチャチェクチョルチョプチャチェクチョルチョプチェチェンチャン?わらチャンチャン?チャン?まま?鉄チョルジンチョル?ぽかんと?目?ちゃん?ちゃんチョルチェプ?ジャム?ジャム?チェチェル???わらチャンチャンチャンチャン?濃いチャンチャク?織?ジャブ?チャト?チェジンチェクチャンチャチョル?目ジャムチェトチョク?目?チャンチョルチェチャトチェチョト?チャトチャンチェプちゃんチョチェム?チェチョト?ジャム????体チャチョル?目?ちゃんチャンチェルチョルチェト?ぽかんと?チェクチャンちゃ?チャトチョプチェム?ジャム?」 --------- UTF-8 is this "占ソクイェプ占ソクイェプ占ソクイェプ占ソクイェプ占ソクイェプ占ソクイェプ占ソクイェプ占"。 "-------- UTF7 is the same as the Default --- ---- UTF32 did not work at all ----- Unicode crashed my N ++ ----- –

0

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

これは、直接、UTF8エンコーディングへのWebClient GET要求の出力を変換します。

関連する問題