ฉันจะตั้งค่าการเข้ารหัสอักขระเริ่มต้นที่ใช้โดย JVM (1.5.x) โดยทางโปรแกรมได้อย่างไร
ฉันเคยอ่านที่-Dfile.encoding=whatever
เคยเป็นวิธีที่จะไปสำหรับ JVM เก่า ฉันไม่มีความหรูหราด้วยเหตุผลที่ฉันจะไม่เข้าไป
ฉันเหนื่อย:
System.setProperty("file.encoding", "UTF-8");
และคุณสมบัติได้รับการตั้งค่า แต่ดูเหมือนจะไม่ทำให้การgetBytes
โทรครั้งสุดท้ายด้านล่างใช้ 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
)? เพราะclass FileInputStream
เป็นสตรีม I / O ที่ใช้ไบต์ดังนั้นทำไมจึงควรใส่ใจกับชุดอักขระในสตรีม I / O ที่อิงไบต์