Me encontré con dos caracteres especiales que parecen no estar cubierto por la ISO-8859-1 conjunto de caracteres, es decir que no se lo hagan a través de mi programa.

El Alemán ß
y el noruego ø

estoy leyendo los archivos de la siguiente manera:

FileInputStream inputFile = new FileInputStream(corpus[i]);
InputStreamReader ir = new InputStreamReader(inputFile, "ISO-8859-1") ;

Hay una manera para mí para leer estos personajes sin necesidad de aplicar la sustitución manual como una solución?

[EDITAR]

esta es la forma en que se ve en pantalla. Tenga en cuenta que no tengo problemas con otros acentos por ejemplo, è y mucho…

lectura de archivo con caracteres acentuados en Java

  • Está usted absolutamente seguro de que la eszett es 0xdf en el archivo y que no se leen en el programa (como char 0x1E9E), en lugar de lo que no se muestra la fuente que está utilizando para la producción?
  • No estoy seguro. Estoy usando el texto copiado y pegado de la Declaración Universal de los Derechos Humanos que se encuentran aquí: ohchr.org/EN/UDHR/Pages/SearchByLang.aspx
InformationsquelleAutor | 2011-04-30

3 Comentarios

  1. 3

    Ambos personajes están presentes en ISO-Latin-1 (revisar mi nombre para ver por qué he mirado en esto).

    Si los caracteres no se leen correctamente, la causa más probable es que el texto en el archivo no se guarda en la codificación, pero en algo más.

    Dependiendo de su sistema operativo y el origen del archivo, las posibles codificaciones podría ser UTF-8 o una página de códigos de Windows como de 850 o 437.

    La manera más fácil es buscar en el archivo con un editor hexadecimal y que le informe qué valores se guardan para estos dos personajes.

    • hay un archivo de codificación que se va a trabajar para varios Indo_European grupos de idiomas, por ejemplo, Germánicos, latinos y Eslavos?
    • casi todos los sola vez, usted sólo debe utilizar la codificación UTF-8.
    • ok. gracias por la sugerencia!
  2. 1

    Suponiendo que el archivo es probablemente UTF-8 codificado, intente esto:

    InputStreamReader ir = new InputStreamReader(inputFile, "UTF-8");
    • Eso suena raro, como que entonces es de esperar UTF8 pares de caracteres no-ASCII en el contenido en lugar de simplemente caracteres alternativos.
  3. 1

    ISO-8859-1 cubre ß y ø, por lo que el archivo es probablemente salvó en una codificación diferente. Usted debe pasar en la codificación del archivo a new InputStreamReader().

    • gracias por el enlace, parece que puede haber casos de falta de cobertura como se mencionó en la página. Por ejemplo, mi noruego de texto puede ser utilizando el danés ø que no está cubierto.
    • Sí, hay una cobertura incompleta, pero no para los personajes que usted menciona en su pregunta.
    • sí, precisamente, el carácter ø no está cubierto
    • No, Ø y ø están cubiertos, pero Ǿ y ǿ faltan.
    • Y ø̈ también falta.

Dejar respuesta

Please enter your comment!
Please enter your name here