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

String的getBytes()问题请教,谢谢!
请看以下简单的代码:

byte[] b = "你".getBytes("gbk");
System.out.println(b[0]);
System.out.println(b[1]);

结果为:
-60
-29

我的问题是:
GBK码表里没有负数,为什么打印结查是负数,应该是一个正数才对啊,谢谢解答!

------解决方案--------------------
一个汉字表示一个字符,大小为两个字节,在gbk编码方式中。而这两个字节是连在一起的,或者说gbk编码方式里没有'你'的一半的编号,只有'你'这个整体的汉字对应的编号。这个应该是默认的规定,不必太在意这个现象。如果你输出一个完整的你就能得到一个正数。我以前也遇到同样的问题,嘿嘿