获取响应获取或发布请求的响应字符集

时间:2012-02-02 12:24:03

标签: java http http-headers httpclient

我正在java web应用程序中提取响应字符集,我正在使用Apache HTTP Client。

例如,从“Content-Type”标题获得的一个可能值是

    text/html; charset=UTF-8

然后我的代码将在“=”符号后提取所有文本...

所以提取的字符集将是

    UTF-8

我只是想知道,上面获取响应字符集的方法是否正确?或者是否存在上述代码不起作用的情况?我在这里缺少什么吗?

3 个答案:

答案 0 :(得分:8)

httpclient(或http核心)是否已提供该功能?像这样:

HttpResponse response = ...
String charset = EntityUtils.getContentCharSet(response.getEntity());

答案 1 :(得分:7)

由42提供的方法可以工作。但是这个方法已被弃用,我发现这个website有一个很好的查找字符集的方法示例。

HttpEntity entity = response.getEntity();
ContentType contentType = ContentType.getOrDefault(entity);
Charset charset = contentType.getCharset();
System.out.println("Charset  = " + charset.toString());

答案 2 :(得分:3)

嗯,当

时,这种方法会失败
  1. 引用字符集值
  2. 当引用的值使用escapes
  3. 当有“charset”以外的参数时