编码

一个汉字对应:

  iso-8859-1:1个字节对应一个字符

  utf-8:3个字节

  gbk:2个字节

1.

 byte[]getBytes(String charsetName)
          使用指定的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。

2.

String(byte[] bytes,String charsetName)
          构造一个新的 String,方法是使用指定的字符集解码指定的字节数组。

         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,一个字节对应着一个字符。


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值