日期:2014-05-20  浏览次数:20680 次

为什么"你"这个字符串的byte[]是-60 -29
public class Test1 {

/**
* @param args
*/
public static void main(String[] args) {
byte a[] = "你".getBytes();
StringBuffer buff = new StringBuffer();
for (int i = 0; i < a.length; i++) {
buff.append(a[i] + " ");
}
System.out.println("数组内容");
System.out.println(buff.toString());
}

}

运行结果为:
数组内容
-60 -29 


为什么"你"这个字符串的byte[]是-60 -29 


麻烦给出详细解释。

等待回答。



------解决方案--------------------
使用系统默认的字符编码,对“你”进行了编码。
getBytes()的源码:
Java code
public byte[] getBytes() {
    return StringCoding.encode(value, offset, count);
    }

------解决方案--------------------
探讨
很正常,一个unicode占两个字节啊!

------解决方案--------------------
如果楼主看了1-5楼的回答还不明白,那么就需要恶补基础了喵~~``
------解决方案--------------------
他们之间的对应关系你需要去专门的unicode码表网站查一下。这个码表非常宏大,而且目前还是继续扩充之中。
------解决方案--------------------
字符嘛~
------解决方案--------------------
探讨
我是问为什么是-60,-29,这两个数字?