Comment définir correctement l'encodage de caractères par défaut utilisé par la JVM (1.5.x) par programme?
J'ai lu que -Dfile.encoding=whatever
c'était la voie à suivre pour les anciennes machines virtuelles Java. Je n'ai pas ce luxe pour des raisons que je n'entrerai pas.
J'ai essayé:
System.setProperty("file.encoding", "UTF-8");
Et la propriété est définie, mais il ne semble pas que l' getBytes
appel final ci-dessous utilise UTF8:
System.setProperty("file.encoding", "UTF-8");
byte inbytes[] = new byte[1024];
FileInputStream fis = new FileInputStream("response.txt");
fis.read(inbytes);
FileOutputStream fos = new FileOutputStream("response-2.txt");
String in = new String(inbytes, "UTF8");
fos.write(in.getBytes());
file.encoding
propriété n'est pas prise en charge .
class Reader
& class Writer
)? Parce class FileInputStream
que le flux d'E / S est basé sur les octets, alors pourquoi devrait-on se soucier du jeu de caractères dans le flux d'E / S basé sur les octets?