来自Java的问号而不是希腊字符HttpURLConnection InputStream

时间:2015-07-22 22:10:51

标签: java character-encoding web-scraping

我正在为期刊文章标题搜索一些学术搜索门户网站,但是一个特定网站给我提问题而不是希腊字母(α,β,δ),我在使用浏览器(Chrome)时看到了这些字母。

HttpURLConnection connection = (HttpURLConnection) new URL(currentUrl).openConnection();
connection.setRequestProperty("Accept-Charset", "UTF-8");
InputStream response = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
StringBuilder sb = new StringBuilder();
for (String line; (line = reader.readLine()) != null;) {
  sb.append(line);
}

在该代码之后我搜索并获取标题,但是一旦调用reader.readLine(),所有希腊字母都是问号。该网站声称使用UTF-8,我在我的InputStreamReader中尝试了它和各种其他字符集。使用ISO-8859-x编码,我得到“Δ和“??”对于其他人(对于US-ASCII也是如此)。

示例网址:http://www.sciencedirect.com/science?_ob=MiamiSearchURL&_method=submitForm&_acct=C000035118&_temp=search.tmpl&test_alid=&md5=aa8434c5674bd9954b705f429951f79d&SearchText=calmodulin&keywordOpt=11&addTerm=0&addSearchText=&addkeywordOpt=11&Subscribed=0&srcSel=18&srcSel=220&srcSel=21&srcSel=22&srcSel=23&C1=FLA&DateOpt=0&fromDate=2015&toDate=Present&aip=1&Volume=&Issue=&Page=&RegularSearch=Search&chunkSize=25

0 个答案:

没有答案