java默认编码方式是unicode的,如下例子:
String str = "a";System.out.println(str.getBytes().length);
System.out.println(str.getBytes("unicode").length);结果分别为
1
4为什么?
String str = "a";System.out.println(str.getBytes().length);
System.out.println(str.getBytes("unicode").length);结果分别为
1
4为什么?
系统的的unicode采用的是big-endian就是前面是两个字节来标示这个的。你也可以打印出来看一下。unicode采用的都是两个字节编码,所以后面是4个字节
但特别要注意的是,本方法将返回该操作系统默认的编码格式的字节数组。
在一个中文WindowsXP系统和英文系统下酒不一样
至于为什么第二个为4,
系统的的unicode采用的是big-endian就是前面是两个字节来标示这个的。
unicode采用的都是两个字节编码,所以后面是4个字节
1 str.getBytes().length
在java编辑环境中默认字符编码是iso-8859-1 这种编码情况下一个字符占用1字节长度,所以str.getBytes().length=12 str.getBytes("unicode")
unicode编码情况下,每个字符的字节长度是4,所以str.getBytes("unicode")=4
在unicode编码下每个字符(包括中文)都是两个字节的.