Cómo agregar CP-1252 a CentOS

Cómo agregar CP-1252 a CentOS

Estamos procesando archivos que nuestros clientes generaron en sus máquinas Windows locales que utilizan el juego de caracteres CP-1252. Ocasionalmente, mientras procesamos uno de estos archivos en nuestro backend (que se ejecuta en CentOS), obtenemos errores de tiempo de ejecución (es un backend de Java, por lo tanto RuntimeExceptions). Si accedemos remotamente al servidor, cambiamos el nombre del archivo (usando UTF-8) y lo volvemos a ejecutar, el archivo se procesa perfectamente bien.

¿Hay alguna forma de "agregar" CP-1252 a los conjuntos de caracteres disponibles de CentOS para que esto deje de suceder?

Respuesta1

Consulte este informe de error de Oracle sobre el comportamiento de Javabug_id=4733494relacionado con la "localización predeterminada". Según este informe de error (en realidad, Sun/Oracle dice que este comportamiento en realidad no es un error, sino simplemente cómo se diseñó Java), de Sun/Oracle:

En versiones del JDK anteriores a la 1.4, siempre forzamos la configuración regional "C" al juego de caracteres ISO8859-1. En las versiones 1.4 y posteriores, admitimos la configuración regional "C", que requiere restricción a ASCII de 7 bits.

La recomendación es establecer la variable de entorno LC_ALLen en_US.ISO8859-1o cualquiera que sea la configuración regional apropiada para el sistema es_ES.ISO-8859-1, etc.

Añadiendo:

export LC_ALL="en_US.ISO-8859-1"

El archivo de comando que ejecuta su back-end de Java debería resolver el problema.

Esto también está documentado en la pregunta SO:https://stackoverflow.com/questions/5663709/how-to-fix-java-when-if-refused-to-open-a-file-with-special-charater-in-filename

información relacionada