【问题标题】:HttpUrlConnection read inputstream - different output resultHttpUrlConnection 读取输入流 - 不同的输出结果
【发布时间】:2015-09-07 18:17:00
【问题描述】:

以下方法旨在获取给定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()); 
}

【问题讨论】:

  • 远程站点有幽默感。
  • 也许 :) 当我检查响应内容类型字符集始终为 UTF-8,但结果不同...
  • 你能检查一下输出有什么不同吗?
  • 第一次调用...y??????Ywmm?Vs??B?0?/M??gJ?l?p.??n.??pBo??N...第二次调用普通html代码 urlhttp://habrahabr.ru/post/266163/
  • 区别在于输出字符串编码,但我不知道为什么每次调用都不一样

标签: java character-encoding inputstream httpurlconnection


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 2012-03-26
    • 2014-01-06
    • 2012-12-04
    • 2015-11-15
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多