Il valore restituito dal URLConnection.getContentEncoding()
restituisce il valore di intestazione Content-Encoding
Codice da URLConnection.getContentEncoding()
/**
* Returns the value of the <code>content-encoding</code> header field.
*
* @return the content encoding of the resource that the URL references,
* or <code>null</code> if not known.
* @see java.net.URLConnection#getHeaderField(java.lang.String)
*/
public String getContentEncoding() {
return getHeaderField("content-encoding");
}
Invece, piuttosto che fare un connection.getContentType()
per recuperare il Content-Type e recuperare il set di caratteri dal Content-Type . Ho incluso un codice di esempio su come fare questo ....
String contentType = connection.getContentType();
String[] values = contentType.split(";"); // values.length should be 2
String charset = "";
for (String value : values) {
value = value.trim();
if (value.toLowerCase().startsWith("charset=")) {
charset = value.substring("charset=".length());
}
}
if ("".equals(charset)) {
charset = "UTF-8"; //Assumption
}
fonte
2010-10-14 14:33:43
questa discussione relativa potrebbe aiutare chiunque altro: http://stackoverflow.com/questions/9112259/obtaining-response-charset-of-response -to-get-or-post-request – Spoonface
Anche c'è una buona ragione connection.getContentEncoding() restituisce null: restituisce il campo "Content-encoding" dell'intestazione http, che ** non è ** dovrebbe darti un set di caratteri. Dovrebbe essere usato ad esempio se i dati ricevuti sono compressi e ti dà il modo di usarli per trasformare i dati in modo che tu possa leggerli. https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11 – jdarthenay