UTF-16编码,通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16)。
UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。
iso8859-1,一个汉字占1个字节。
public class Test { /** * @param args * @throws UnsupportedEncodingException */ public static void main(String[] args) throws UnsupportedEncodingException { // TODO Auto-generated method stub String name="宋"; int a=name.getBytes("gb2312").length; System.out.println(a);//a=2 a=name.getBytes("utf-8").length;//一个汉字占3个字节 System.out.println(a);//a=3 a=name.getBytes("utf-16").length;//一个汉字占4个字节 System.out.println(a);//a=4 a=name.getBytes("gbk").length; System.out.println(a);//a=2 a=name.getBytes("ISO8859-1").length;//一个汉字占一个字节 System.out.println(a);//a=1 a=name.length();//一个汉字占一个长度 System.out.println(a);//a=1 a=name.getBytes("UNICODE").length;//一个汉字占一个字节 System.out.println(a);//a=4 } }