2012-02-02 35 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());