Come posso impostare correttamente la codifica dei caratteri predefinita utilizzata dalla JVM (1.5.x) a livello di codice?
Ho letto che -Dfile.encoding=whatever
era la strada da percorrere per le JVM più vecchie. Non ho quel lusso per ragioni che non mi interessano.
Ho provato:
System.setProperty("file.encoding", "UTF-8");
E la proprietà viene impostata, ma non sembra che l'ultima getBytes
chiamata in basso usi 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());
class Reader
& class Writer
)? Perché class FileInputStream
è un flusso I / O basato su byte, quindi perché uno dovrebbe preoccuparsi del set di caratteri nel flusso I / O basato su byte?