obtaining response charset of response to get or p

2019-04-29 07:58发布

I am working to extract response charset in a java web app, where I am using Apache HTTP Client.

For example, one possible value obtained from "Content-Type" header is

    text/html; charset=UTF-8

Then my code will extract all text after the "=" sign...

So the charset as extracted will be

    UTF-8

I just wanted to know, is the above method for obtaining response charset correct? Or is there some scenario where the above code will not work? Is there something I am missing here?

3条回答
Root(大扎)
2楼-- · 2019-04-29 08:26

The method provided by forty-two can work. But the method is deprecated, I find out that this website has a good example of method to find the charset.

HttpEntity entity = response.getEntity();
ContentType contentType = ContentType.getOrDefault(entity);
Charset charset = contentType.getCharset();
System.out.println("Charset  = " + charset.toString());
查看更多
甜甜的少女心
3楼-- · 2019-04-29 08:31

Well, that approach will fail when

  1. the charset value is quoted
  2. when the quoted value uses escapes
  3. when there are parameters other than "charset"
查看更多
走好不送
4楼-- · 2019-04-29 08:37

Doesn't httpclient (or http core) already provide that functionality? Something like this:

HttpResponse response = ...
String charset = EntityUtils.getContentCharSet(response.getEntity());
查看更多
登录 后发表回答