java的中英文编码测试代码

public static String bytesToHexStringPrint(byte[] bArray){
		if(bArray == null || bArray.length == 0){
			return null;
		}
		StringBuffer sb = new StringBuffer(bArray.length);
		String sTemp;
		for (int i = 0; i < bArray.length; i++){
			sTemp = Integer.toHexString(0xFF & bArray[i]);
			if (sTemp.length() < 2)
				sb.append("0");
			sb.append(sTemp.toUpperCase()+" ");
		}
		return sb.toString();
	}
public static void utf8LengthTest(){
		String t= "中文测试abc";
		try {
			System.out.println("len1 = "+t.length());
			
			System.out.println("len2 = "+t.getBytes().length);
			System.out.println(bytesToHexStringPrint(t.getBytes()));
			
			String out = new String(t.getBytes(), "utf-8") ;
			System.out.println("len3 = "+out.getBytes().length);
			System.out.println(bytesToHexStringPrint(out.getBytes()));
			//上面打印和这里相同,说明java文件也是为utf-8编码的
			
			out = new String(t.getBytes(), "utf-16") ;
			System.out.println("len4 = "+out.getBytes().length);
			System.out.println(bytesToHexStringPrint(out.getBytes()));
			
			out = new String(t.getBytes(), "utf-8") ;
			System.out.println("len5 = "+out.getBytes("gbk").length);
			System.out.println(bytesToHexStringPrint(out.getBytes("gbk")));
			
			out = new String(t.getBytes(), "GB2312") ;
			System.out.println("len6 = "+out.getBytes().length);	
			System.out.println(bytesToHexStringPrint(out.getBytes()));
			
			out = new String(t.getBytes(), "ISO8859-1") ;
			System.out.println("len6 = "+out.getBytes().length);
			System.out.println(bytesToHexStringPrint(out.getBytes()));
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
结果:

len1 = 7
len2 = 15
E4 B8 AD E6 96 87 E6 B5 8B E8 AF 95 61 62 63 
len3 = 15
E4 B8 AD E6 96 87 E6 B5 8B E8 AF 95 61 62 63 
len4 = 24
EE 92 B8 EA B7 A6 E9 9A 87 EE 9A B5 E8 AF A8 EA BE 95 E6 85 A2 EF BF BD 
len5 = 11
D6 D0 CE C4 B2 E2 CA D4 61 62 63 
len6 = 27
E6 B6 93 EF BF BD EF BF BD EF BF BD E5 A8 B4 EF BF BD E7 92 87 EF BF BD 61 62 63 
len6 = 27
C3 A4 C2 B8 C2 AD C3 A6 C2 96 C2 87 C3 A6 C2 B5 C2 8B C3 A8 C2 AF C2 95 61 62 63 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值