刚才发现个问题,描述如下前提:
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这到底是怎么回事?????
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这到底是怎么回事?????
hello.txt源文件是GBK的编码,到英文系统下,用BufferedReader读取出来的就是错的,应该用字节流读取再转成GBK字符串