No consigo cambiar la pagina de codigos por defecto en una maquina linux

Alex
27 de Enero del 2004
Pues eso, que cuando cambio el valor de la propiedad de sistema "file.encoding", java hace caso omiso y sigue utilizando la que tiene por defecto la plataforma linux, en este casi "ASCII".

Para comprobarlo me he hecho un pequeño programa:

public static void main(String[] args) {
try{
System.setProperty("file.encoding",
"ISO-8859-1");
FileInputStream fis =
new FileInputStream("c:\tmp\output.txt");
InputStreamReader isr =
new InputStreamReader(fis, "UTF8");
InputStreamReader defaultReader =
new InputStreamReader(fis);
System.out.println"defaultReader="+
defaultReader.getEncoding());

}
catch (Exception e) {
e.printStackTrace();
}
}

Este programita comprueba que al modificar la propiedad "file.encoding", la codificación por defecto pasa a ser la que se asigne en la propoedad(en este caso ISO-8859-1).

Bien pues en windows ejecuto este propgrama y no tengo ningún problema, funciona correctamente. Es decir el valor obtenido como "defaultReader" siempre es el que le asigne a la propiedad "file.encoding".

En cambio, y ahí viene mi problema en Linux ponga el valor qure ponga en "file-encoding", el valor de "defaultReader" siempre es "ASCII".

El sistema linux es debian Woody 3.0.

Por si alguien se pregunta para que quiero hacer esto, es debido a que estoy trabajando en un sistema de firmado de código, el cual se firma en una maquina windows, y se verifica en una maquina Linux. Como el objeto para firmar y verificar (Signature) utiliza la codificación por defecto del sistema, necesito que tanto en windows como en Linux sea la misma.

Chao

Muchas gracias por adelantado

Abel Vilches Prat
09 de Octubre del 2012
Me sucede exactamente lo mismo. Además en la versión 1.4.2 existe un bug que proboca que no hace caso al "-Dfile.encoding=" en la llamada a java si quieres forzar el encoding.
De esta forma solo me queda cambiar el encoding del file.encoding de la instalación de java, pero no encuentro en ningún sitio como hacerlo.

Gracias por adelantado.