Impostare a UTF-8 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, 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.