2012-02-02 36 views
3

我正在努力在java web应用程序中提取响应字符集,我正在使用Apache HTTP Client。获取响应的响应字符集获取或发布请求

例如,从“内容类型”获得一个可能的头值是

text/html; charset=UTF-8 

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

这样的字符集为提取将

UTF-8 

我只是想知道,是获得响应的字符集正确上述方法?或者是否有上述代码无法工作的情况?有什么我在这里失踪?

回答

7

隐而不宣httpclient(或http核心)已经提供了这种功能?这样的事情:

HttpResponse response = ... 
String charset = EntityUtils.getContentCharSet(response.getEntitty()); 
3

嗯,这办法,就不会当

  1. 的charset值是引用
  2. 当引用值使用转义
  3. 当有比其他参数 “字符集”
3

由四十二提供的方法可以工作。但该方法已被弃用,我发现这个website有一个很好的例子来找到字符集。

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