是java错了?是windows错了?还是我错了?
刚才发现个问题,描述如下
前提:
1.测试环境:windowsXP中文版(以下简称xp)
2.有一个hello.txt文件里写着“测试”2个中文字。
test1
把xp的区域与语言选项设为:中文(中国)
从hello.txt中用BufferedReader读入"测试"存储在string str中
从str中取得byte[] : byte[] b = str.getBytes("编码方式");
当编码方式为gbk时:b={-78,-30,-54,-44}
当编码方式为iso-8859-1时:b={63,63}
当编码方式为utf-8时:b={26,-75,-117,-24,-81,-107}
test2
把xp的区域与语言选项设为:英文(美国)
从hello.txt(与上面是同一个文件)中用BufferedReader读入"测试"存储在string str中
从str中取得byte[] : byte[] b = str.getBytes("编码方式");
当编码方式为gbk时:b={63,63,63,63}
当编码方式为iso-8859-1时:b={-78,-30,-54,-44}
当编码方式为utf-8时:b={-62,-78,-61,-94,-61,-118,-61,-108}
得到结果:
中文和英文时用同样的编码得到的byte[]不一样
还有,中文时用gbk=英文时用iso-8859-1
这到底是怎么回事?????