String类常用方法系列三:和byte相关,或者说和编码与解码相关

(1)byte[] getBytes():编码的方法,使用平台默认的字符编码进行编的

  • byte[] getBytes(编码方式):
  • 编码:对于ASCII码范围内(0~127),无论用什么编码方式,结果都是一样的,一个字符对应一个字节的编码值
  •      对于其他的字符,编码,结果不一定是几个字节,例如汉字:
    
  •  UTF-8:变长的,但是大多数汉字都是3个字节
    
  •  GBK、GB2312:固定2个字节
    
  •  ISO8859-1:不支持中文,所有字符都变为1个字节
    
@Test
	public void test01(){
		String str = "a";
		byte[] bytes = str.getBytes();
		System.out.println(Arrays.toString(bytes));//[97]
	}

@Test
	public void test02(){
		String str = "abc";
		byte[] bytes = str.getBytes();
		System.out.println(Arrays.toString(bytes));//[97, 98, 99]
	}

(2)new String(字节数组)

  • new String(字节数组,编码方式)
  • 编码:
  • 把字符–>字节的过程,编给计算机用的
  • 解码:
  • 把字节–>字符的过程,解给人看的
  • 乱码:
  • (1)编码与解码字符集不一致
  • (2)缺字节
@Test
	public void test03() throws UnsupportedEncodingException{
		String str = "张三";
		byte[] bytes = str.getBytes();
		System.out.println(Arrays.toString(bytes));
	
		String string = new String(bytes,"UTF-8");
		System.out.println(string);
	}

@Test
	public void test04() throws UnsupportedEncodingException{
		String str = "张三";
		byte[] bytes = str.getBytes("GBK");
		System.out.println(Arrays.toString(bytes));
		
		String string = new String(bytes,"GBK");
		System.out.println(string);
	}

@Test
	public void test05() throws UnsupportedEncodingException{
		String str = "张三";
		byte[] bytes = str.getBytes("ISO8859-1");
		System.out.println(Arrays.toString(bytes));//[63, 63, 63]
		
		String string = new String(bytes,"ISO8859-1");
		System.out.println(string);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值