Lectura de XML codificado UTF-8 desde URL en java

Si esa página es xml, generalmente debería pasar InputStream directamente al analizador xml y dejar que detecte automáticamente la codificación. De lo contrario, debe mirar el parámetro charset del encabezado de respuesta de tipo de contenido para determinar la codificación correcta y crear el InputStreamReader apropiado.

Editar: ese servidor está respondiendo con diferentes codificaciones al navegador y al cliente java, probablemente dependiendo del Accept-Charsetencabezado de la solicitud. Para Firefox, este encabezado tiene el valor

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n

Esto significa que ambos conjuntos de caracteres son aceptados, no hay preferencia por ninguno de los dos. El servidor responde con un Content-Typeencabezado de text/xml; charset=UTF-8. El cliente java no envía este encabezado y el servidor responde con text/xml; charset=ISO-8859-1.

Para usar el juego de caracteres suministrado por el servidor, puede usar un código como el siguiente:

Matcher matcher = Pattern.compile("charset\\s*=\\s*([^ ;]+)").matcher(contentType);
String charset = "utf-8"; // default
if (matcher.find()) {
    charset = matcher.group(1);
}
System.out.println(con.getContentType());

BufferedReader in = new BufferedReader(new InputStreamReader(
    con.getInputStream(), charset));

Edición 2: Resulta que el servidor decide el juego de caracteres a utilizar en función del encabezado de agente de usuario. Si agrega la siguiente línea, responde con un conjunto de caracteres de utf-8.

con.setRequestProperty("User-Agent", "Mozilla/5.0");

De todos modos, el Content-Typeencabezado de respuesta contiene el juego de caracteres correcto para usar.

Respuesta 1

¿Puede un applet Java firmado manipular cookies de otros dominios? (por ejemplo, con JSObject)

Tengo que automatizar un caso en el que tengo que descargar un archivo de Excel usando selenium ide.He hecho esto en firefox usando la función de perfil personalizado que descarga automáticamente el archivo y lo guarda en un ...

Necesito su ayuda para generar imágenes fuera de pantalla de la clase de gráficos y convertirlas en datos binarios sin configurarlas visibles en la pantalla. Quiero generar grandes cantidades de etiquetas y enviarlas ...

Tengo un JComboBox que se configura automáticamente con un método que toma todos los Id de mi base de datos al inicio, también tengo una función de eliminación, que eliminará el objeto seleccionado de la base de datos, pero ...