Is there a way to change the encoding used by the String(byte[]) constructor ?
In my own code I use String(byte[],String) to specify the encoding but I am using an external library that I cannot change.
String src = 'with accents: é à'; byte[] bytes = src.getBytes('UTF-8'); System.out.println('UTF-8 decoded: '+new String(bytes,'UTF-8')); System.out.println('Default decoded: '+new String(bytes));
The output for this is :
UTF-8 decoded: with accents: é à Default decoded: with accents: é Ã
I have tried changing the system property file.encoding but it does not work.
You need to change the locale before launching the JVM; see:
Java, bug ID 4163515
Some places seem to imply you can do this by setting the file.encoding variable when launching the JVM, such as
…but I haven’t tried this myself. The safest way is to set an environment variable in the operating system.