本帖最后由 戴振良 于 2012-4-4 00:34 编辑
在张孝详的IO视频中,有这么一段,把系统的默认字符集改为iso8859-1,则调用getBytes方法时会用默认的字符集来编码,我照着一模一样的做,可是我的却不行。- import java.io.*;
- public class Test
- {
- public static void main(String[] args) throws Exception {
- System.setProperty("file.encoding","iso8859-1");//------------>代码1
- String str ="中国";
- byte [] buf = str.getBytes();
- for(int i = 0;i < buf.length;i++)
- System.out.println(Integer.toHexString(buf[i]));
-
- for(int i = 0 ;i < buf.length;i++)
- System.out.write(buf[i]);
- System.out.println();
- }
- }
复制代码 输出内容为:
ffffffd6
ffffffd0
ffffffb9
fffffffa
中国
这结果和注释掉代码1的结果是一样的,我不是把系统默认字符编码改为了iso8859-1了吗?为什么getBytes()方法并没有采用iso8859-1来获取字符的编码呢? |