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

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

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

text/html; charset=UTF-8 

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

所以提取的字符集将是

  UTF-8 

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

httpclient(或http核心)是否已经提供了该function? 像这样的东西:

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

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

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

那么,这种方法会失败

  1. 引用的字符集值
  2. 当引用的值使用转义时
  3. 什么时候有“charset”以外的参数