Como configuro corretamente a codificação de caracteres padrão usada pela JVM (1.5.x) programaticamente?
Eu li que -Dfile.encoding=whatever
costumava ser o caminho a seguir para JVMs mais antigas. Não tenho esse luxo por razões que não me envolvem.
Eu tentei:
System.setProperty("file.encoding", "UTF-8");
E a propriedade é configurada, mas parece não fazer com que a getBytes
chamada final abaixo use 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
)? Como class FileInputStream
o fluxo de E / S é baseado em bytes, por que alguém deveria se preocupar com o conjunto de caracteres no fluxo de E / S baseado em bytes?