URLConnection没有得到字符集?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (41)

我在用URL.openConnection()从服务器下载东西。服务器说

Content-Type: text/plain; charset=utf-8

connection.getContentEncoding()返回null

提问于
用户回答回答于

getContentEncoding()方法返回Content-Encoding的http标头,在示例中没有设置。你可以用getContentType()方法,并自行解析生成的字符串,或者可能进行更多的解析。

用户回答回答于

URLConnection.getContentEncoding()返回标头中的值。

/**
     * Returns the value of the <code>content-encoding</code> header field.
     *
     * @return  the content encoding of the resource that the URL references,
     *          or <code>null</code> if not known.
     * @see     java.net.URLConnection#getHeaderField(java.lang.String)
     */
    public String getContentEncoding() {
       return getHeaderField("content-encoding");
    }

相反,可以使用connection.getContentType()若要检索内容类型并从内容类型检索字符集,请执行以下操作。

String contentType = connection.getContentType();
String[] values = contentType.split(";"); // values.length should be 2
String charset = "";

for (String value : values) {
    value = value.trim();

    if (value.toLowerCase().startsWith("charset=")) {
        charset = value.substring("charset=".length());
    }
}

if ("".equals(charset)) {
    charset = "UTF-8"; //Assumption
}

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问12 回答
  • 四无君

    0 粉丝0 提问3 回答
  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问2 回答
  • o o

    3 粉丝490 提问2 回答

扫码关注云+社区

领取腾讯云代金券