如何使用JAVA inputStream从HTML代码中抓取汉字?
How to grab Chinese characters from HTML code using 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 输入流从互联网上获取其他语言的内容吗?
在您的情况下,您没有为 InputStreamReader
指定字符编码,因此接受平台的默认字符集。要阅读中文字符,请使用 UTF-8
字符集:
reader = new BufferedReader(new InputStreamReader(yahooUrl.openStream(), "UTF-8"));
我想使用以下方法从网站下载一些数据。
下载英文/数字内容没问题,但抓取时无法生成正确的中文字符中文内容。
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 输入流从互联网上获取其他语言的内容吗?
在您的情况下,您没有为 InputStreamReader
指定字符编码,因此接受平台的默认字符集。要阅读中文字符,请使用 UTF-8
字符集:
reader = new BufferedReader(new InputStreamReader(yahooUrl.openStream(), "UTF-8"));