关于java中String.getBytes()问题

都说是得到一个系统默认的编码格式的字节数组,可是这个字节数组里面存放的数据代表什么。比如
String str = "你";
byte[] bytes = str.getBytes();
for(int i = 0;i < bytes.length;i++){
System.out.println(i+":"+bytes[i]);
}
输出:
0:-28
1:-67
2:-96
这-28,-67,-96表示的是什么呢?

api中
getBytes():使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 当此字符串不能使用默认的字符集编码时,此方法的行为没有指定。如果需要对编码过程进行更多控制,则应该使用 CharsetEncoder
类。

http://www.blogjava.net/baizhihui19870626/articles/388054.html这个是对字符集的解释 根据不同的编码格式 得到的数据也不一样
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-01
你用的是UTF8的编码吧,一个中文需要三个字节存储的,具体的byte并没有特殊的意思;只不过一个汉字需要24位来标识,你拆分成三个八位的byte,比如00000001。System.out对象会输出一个数字。。
相似回答