2012-02-07 9 views
16

Parece ser un problema bastante grave, pero aún no he podido encontrar una solución; tal vez porque viene en tan muchos sabores. Aquí es sin embargo. Intento leer algunos archivos delimitados por comas (ocasionalmente los delimitadores pueden ser un poco más únicos que las comas, pero las comas serán suficientes por ahora).Autodetección de la codificación de caracteres en Java

Se supone que los archivos están estandarizados en toda la industria, pero últimamente hemos visto muchos tipos diferentes de archivos de juego de caracteres. Me gustaría poder configurar un BufferedReader para compensar esto.

¿Cuál es una forma bastante estándar de hacer esto y detectar si fue exitoso o no?

Mis primeras ideas sobre este enfoque son recorrer conjuntos de caracteres simple-> complejo hasta que pueda leer el archivo sin excepción. Aunque no es exactamente ideal ...

Gracias por su atención.

+2

La detección de codificaciones es un problema muy difícil, y para algunas codificaciones, la única manera de saber una de ellas es correcta es a través de un análisis contextual (que es una tarea muy trivial). Si sabe exactamente qué codificaciones necesita admitir (por ejemplo, UTF-16, UTF-8, ISO-8859-1), puede ser más fácil, pero depende de cuáles sean esas codificaciones. –

+2

si no obtiene una excepción, no significa necesariamente que fue exitosa – MozenRath

+0

Me compadezco con usted. –

Respuesta

10

Se supone que el universalchardet de Mozilla es el detector eficiente que existe. juniversalchardet es el puerto de Java. Hay un puerto más. Lea este SO para obtener más información Character Encoding Detection Algorithm

+1

veo que la licencia no apache. ¿Qué tan diferente es comparado con apache? –

Cuestiones relacionadas