Impostare il character encoding in Java

Ogni istanza della Java virtual machine ha un character encoding di default, determinato all’avvio della JVM e che tipicamente dipende dall’encoding utilizzato dal sistema operativo. Ad esempio, sotto Windows il character encoding di default è Cp1252, mentre sotto Linux UTF-8. Per conoscere la codifica usata dalla JVM possiamo invocare il metodo:

System.getProperty("file.encoding");

Per modificare il character encoding di default è necessario impostare una variabile d’ambiente:

JAVA_TOOL_OPTIONS

con il valore: -Dfile.encoding=UTF8

Quando si esegue un’applicazione Java, la console avviserà di questa modifica, infatti System.err  posterà il messaggio:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8

Una soluzione alternativa è quella di modificare il “system locale” del proprio sistema operativo.