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, in Windows il character encoding di default è Cp1252, mentre in 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.