2016-10-25 7 views
1

Я хотел бы загрузить некоторые данные с веб-сайта, используя следующие методы.Как захватить китайских символов из HTML-кода с помощью JAVA inputStream?

Он не имеет никаких проблем с загрузкой английского содержания/номера, но он не будет генерировать правильный китайский характера, когда я пытаюсь захватить китайский контент.

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 inputstream?

ответ

1

В вашем случае вы не указали кодировку символов для InputStreamReader, поэтому принимается по умолчанию кодировка платформы. Для чтения китайских иероглифов используйте кодировку UTF-8:

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

Спасибо! это проблема с кодировкой символов, которую вы упомянули, но она работает с UTF-8. – EricHo

+0

Отлично! Тогда лучше использовать «UTF-8», я исправлю ответ. – DimaSan