Jak poprawnie ustawić domyślnie kodowanie znaków używane przez JVM (1.5.x) programowo?
Przeczytałem, że -Dfile.encoding=whatever
kiedyś była to droga do starszych JVM. Nie mam tego luksusu z powodów, dla których nie chcę.
Próbowałem:
System.setProperty("file.encoding", "UTF-8");
I właściwość zostaje ustawiona, ale nie wydaje się, aby powodowała, że ostatnie getBytes
wywołanie poniżej używa 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
)? Ponieważ class FileInputStream
jest to strumień I / O oparty na bajtach, dlaczego więc należy przejmować się zestawem znaków w strumieniu I / O opartym na bajtach?