Java HttpUrlConnection读取输入流-不同的输出结果

Java HttpUrlConnection读取输入流-不同的输出结果,java,character-encoding,inputstream,httpurlconnection,Java,Character Encoding,Inputstream,Httpurlconnection,下面的方法旨在获取给定url的html页面的源代码,但它在每个调用中返回不同字符集的结果(在每个调用参数中url是相同的),请解释一下原因 private String getSourceCode(URL url) { HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U;

下面的方法旨在获取给定url的html页面的源代码,但它在每个调用中返回不同字符集的结果(在每个调用参数中
url
是相同的),请解释一下原因

private String getSourceCode(URL url) {
    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
    conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel MacOS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

    return IOUtils.toString(conn.getInputStream()); 
}

实际上有几个可能的原因。例如,在URL后面,实际上可以有几个不同的服务器,它们的默认响应编码不同。第一个调用可以由使用utf-8的服务器提供,另一个调用可以由另一个使用另一种编码的服务器提供。

远程站点有一种幽默感。可能:)当我检查响应contect type charset始终为utf-8时,但是结果是不同的…你能检查一下输出中的区别吗?第一次调用:
…y?????Ywmm?Vs?B?0?/M?gJ?l?p?n?pBo?n.
第二次调用:普通html代码url:
http://habrahabr.ru/post/266163/
不同之处在于输出字符串编码,但我不知道为什么每次调用都不同