Pregunta

Estoy utilizando un analizador de HTML llamada Jsoup, para cargar archivos y analizar HTML. El problema es que la página web que estoy raspando está codificada en charset ISO-8859-1 mientras que Android está utilizando codificación UTF-8 (?). Esto es resultado en algunos caracteres aparecer como signos de interrogación.

Así que ahora supongo que debería convertir la cadena en formato UTF-8.

Ahora he encontrado esta clase llamada CharsetEncoder en el SDK de Android, que supongo que me podría ayudar. Pero no puedo encontrar la manera de ponerla en práctica, en la práctica, por lo que me pregunto si podría obtener ayuda con som mediante un ejemplo práctico.

ACTUALIZACIÓN: El código para leer los datos ( Jsoup )

url = new URL("http://www.example.com");
Document doc = Jsoup.parse(url, 4000);
¿Fue útil?

Solución

Puede dejar Android haga el trabajo por usted por la lectura de la página en un byte [] y utilizando los métodos jSoup para analizar objetos de cadena.

No se olvide de especificar la codificación cuando se crea la cadena partir de los datos leídos desde el servidor utilizando la cadena correcta constructor .

Otros consejos

Byte codificaciones y cuerdas

public static void main(String[] args) {

      System.out.println(System.getProperty("file.encoding"));
      String original = new String("A" + "\u00ea" + "\u00f1"
                                 + "\u00fc" + "C");

      System.out.println("original = " + original);
      System.out.println();

      try {
          byte[] utf8Bytes = original.getBytes("UTF8");
          byte[] defaultBytes = original.getBytes();

          String roundTrip = new String(utf8Bytes, "UTF8");
          System.out.println("roundTrip = " + roundTrip);

          System.out.println();
          printBytes(utf8Bytes, "utf8Bytes");
          System.out.println();
          printBytes(defaultBytes, "defaultBytes");
      } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
      }

   } // main
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top