关于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对象会输出一个数字。。

关于java中String.getBytes()问题
getBytes():使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 当此字符串不能使用默认的字符集编码时,此方法的行为没有指定。如果需要对编码过程进行更多控制,则应该使用 CharsetEncoder 类。http:\/\/www.blogjava.net\/baizhihui19870626\/articles\/388054.ht...

求教大神,java中关于String类的getBytes()方法的问题
C1CB 在Java语言中,对于byte、short等整形数据,它的控制台输出都是10进制的,getBytes()[0]的byte十六进制显示为CE,转换成10进制就是-50,所以控制台打印的是-50。

求教大神,java中关于String类的getBytes()方法的问题
一个汉字两个字节,所以"我来了".getBytes()[0]得到的是“我”这个字的高八位。又byte要显示为1010这种形式,在JAVA的API Byte中是没有提供的,而在Integer中提供有toBinaryString()这个类方法可将一个数字以二进制的方式显示,所以需要将该byte转换为int之后再调用Integer.toBinaryString(int)方法来...

java中String.getBytes()的用法
str.getBytes() 返回一个字节数组 调用一次返回的都是一个新的数组对像, 你打印的是对象引用的哈希码(不是对像里面的内容),肯定是不一样的(因为每次返回都是一个新的变量).他们的内容是一样的.

java中String对象的getBytes方法是干什么的?
String的getBytes()方法是得到一个系统默认的编码格式的字节数组 getBytes("utf-8") 得到一个UTF-8格式的字节数组 如果你的java指定UTF-8编码则两个方法返回的数组一样。如果你java工程是GBK的两个方法返回不同。

java中文乱码,能说下string.getBytes()和new String()转码是,具体点...
1、Java中,【String.getBytes(String decode)】的方法,会根据指定的decode,编码返回某字符串在该编码下的byte数组表示,例如:byte[] b_gbk = "中".getBytes("GBK");byte[] b_utf8 = "中".getBytes("UTF-8");byte[] b_iso88591 = "中".getBytes("ISO8859-1")上面三行代码表示:分别...

java中的String的getBytes()方法可以获取3个byte,那么如果知道3个byt...
String s = new String(byte[] b);就得到一个汉字了。如果出来的汉字有乱码,可以设置编码:String s = new String(byte[] b,String charset);

jsp脚本中与java中的String.getBytes()方法的问题
iso-8859-1 只能获取英文的的编码。汉字它不认,所以就解析成?问号了,问号的ascii码为63,所以汉字都变成问号了,汉字应该用utf-8 或者gbk来解析才行

java中调用String中的getBytes()得到的是byte数组,把他赋给一个数组b...
你需要在Demo中重写object类里的方法,才能比较数组里的属性是否相等。否则equals==,比较的都是地址值,因为地址值不同得到的都是false。

字符编码问题
一. Unicode编码, \/uff01,四位六进制码 在Java中,String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示 ,如 byte[] b_gbk = "中".getBytes("GBK");byte[] b_utf8 = "中".getBytes("UTF-8");byte[] b_iso88591 = "中".getBytes("ISO...

相似回答