一个汉字对应:
iso-8859-1:1个字节对应一个字符
utf-8:3个字节
gbk:2个字节
1.
byte[] | getBytes(String charsetName) 使用指定的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。 |
2.
|
static String s="你好";
static byte [] bytes=null;
(1)
public static void test1()throws Exception{ //以字符集GBK把s解码为字节序列 bytes=s.getBytes("GBK"); for(int i=0;i<bytes.length;i++){ System.out.println(Integer.toHexString(bytes[i])); } //把bytes当做GBK编码,然后组装一个新的字符串 //2个汉字--->4个字节(GBK)--->2个汉字 System.out.println(new String(bytes,"GBK")); }
结果为:
ffffffc4
ffffffe3
ffffffba
ffffffc3
你好
(2)
public static void test2()throws Exception{
//2个汉字-->6个字节
bytes=s.getBytes("utf-8");
for(int i=0;i<bytes.length;i++){
System.out.println(Integer.toHexString(bytes[i]));
}
System.out.println(new String(bytes,"utf-8"));
}
结果为:
ffffffe4
ffffffbd
ffffffa0
ffffffe5
ffffffa5
ffffffbd
你好
(3)
public static void test3()throws Exception{
bytes=s.getBytes("GBK");
for(int i=0;i<bytes.length;i++){
System.out.println(Integer.toHexString(bytes[i]));
}
System.out.println(new String(bytes,"iso-8859-1"));
}
结果为:
ffffffc4
ffffffe3
ffffffba
ffffffc3
????
可以看出,对于iso-8859-1,一个字节对应着一个字符。