A volte si incorre in classi Java compilate con virtual machine che utilizzano charset diverse, causando problemi nelle stringhe che contengono caratteri speciali.
Il metodo mediante cui è possibile riconoscere il charset utilizzato dalla Virtual Machine per compilare è il seguente.
Questo esempio presenta una sezione compatibile con la versione 1.4 della jdk ed un altra con la 1.5. Per poter eseguire lo script è necessario commentare la sezione non interessata.
public class Hello {
public static void main(String args[]) throws Exception{
// not crossplateform safe
System.out.println(System.getProperty("file.encoding"));
// jdk1.4
System.out.println(
new java.io.OutputStreamWriter(
new java.io.ByteArrayOutputStream()).getEncoding()
);
// jdk1.5
System.out.println(java.nio.charset.Charset.defaultCharset().name());
}
}
L'output sarà del tipo:
>java Hello
Cp1252
Cp1252
windows-1252
Nessun commento:
Posta un commento