我正在用Java编写一个程序来解析网页中的一些文本。但是当我使用下面的代码时,我会得到奇怪/不正确的字符。
代码:
URL url = new URL(getSearchUrl(crit));
URLConnection connection = url.openConnection();
BufferedReader br = new BufferedReader(
new InputStreamReader(connection.getInputStream(), "UTF-8"));
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
br.close();
我得到以下输出:
?} V· 8 ???? ...
那么我做错了什么?我知道我想收集信息的网站使用utf-8。
编辑:我目前在Crotia。我尝试过其他一些我知道在塞尔维亚(我的祖国)工作的程序,但它在这里没有用。
答案 0 :(得分:1)
它是g-zipped。你可以使用connection.getContentEncoding()
看到它。
如果您在GZIPInputStream
周围使用connection.getInputStream()
,它应该会更好。
BufferedReader br = new BufferedReader(
new InputStreamReader(new GZIPInputStream(connection.getInputStream()), "UTF-8"));