byte[] bb="hello".getBytes("gb2312");
System.out.println("bb.length:::"+bb.length);
for(byte bb1:bb)
System.out.println((char)bb1);
运行代码得到如下结果:
bb.length:::5
h
e
l
l
o
我查了一些资料,都说gb2312中的所有字符都是用二个字节表示。如果是这样,那我上面的程序中bb字节数组的长度应该是10啊
可结果却是却是5.我想请问gb2312中的英文字母符号到底是用几个字节表示啊?
ASCII 英文一个字节
gb2312,gbk 中文两个字节,英文一个字节
在中文系统中ansi一般指gb2312或gbk
GB2312、GBK都属于双字节字符集 (DBCS)
Utf-8 中文三个字节,英文一个字节
Unicode 中文两个字节,英文两个字
嘿嘿,权威的如何解释GB2312不是sun公司,而是我们国家自己的标准啊,每一个大专、大学的任何学生,其计算机基础课程中都会详细讲解GB2312的啊。
byte[] bb="hello".getBytes("gb2312");
System.out.println("bb.length:::"+bb.length);
我查了一些资料,都说gb2312中的所有字符都是用二个字节表示。如果是这样,那我上面的程序中bb字节数组的长度应该是10啊
可结果却是却是5.我想请问gb2312中的英文字母符号到底是用几个字节表示啊?
答:GB2312中1区到15区共682个字符或图形符号都是全角方式下的字符。即:
若byte[] bb="hello".getBytes("gb2312");(注意是全角方式下),bb字节数组的长度就会是10了。
因此:gb2312中的所有字符都是用二个字节表示(是因为:它的字符都是全角方式)。gb2312中不会对半角方式下的字符编码的(这是ASCII码的事情),因此:在getBytes("gb2312");转换时,半角的字符都是一个字节,全角的同样字符才是两个字节。