2016-10-25 2 views
1

以下の方法でウェブサイトからデータをダウンロードしたいと思います。JAVA inputStreamを使用してHTMLコードから漢字を取得する方法は?

それは、英語 /番号のコンテンツをダウンロード問題ありませんが、私は中国のコンテンツをつかむしようとすると、それが正しい中国文字を生成しません。

String url = "https://hk.finance.yahoo.com/q/ct?s=1928.HK";   
URL yahooUrl = new URL(url); 
reader = new BufferedReader(new InputStreamReader(yahooUrl.openStream())); 
String line =""; 
while((line =reader.readLine()) != null){ 
    htmlData.append(line); 
} 
Pattern p = Pattern.compile(
Pattern.quote("<div class=\"title\"><h2>")+ "(.*?)" 
        +Pattern.quote("</h2>")); 
Matcher match = p.matcher(htmlData.toString()); 
if(match.find()){ 
    stockName = match.group(1); 
} 

Java入力ストリームを使用してインターネットから他の言語のコンテンツを取得する方法を知っていますか?

答えて

1

InputStreamReaderの文字エンコードが指定されていないため、プラットフォームのデフォルトの文字セットが受け入れられます。中国語を読むには、UTF-8文字セットを使用してください。

reader = new BufferedReader(new InputStreamReader(yahooUrl.openStream(), "UTF-8")); 
+1

ありがとうございます!それはあなたが言及した文字エンコーディングの問題ですが、UTF-8で動作します。 – EricHo

+0

素晴らしい!それから、 "UTF-8"を使う方が良いです。答えを修正します。 – DimaSan

関連する問題