编码: 字符串-->字节
String msg ="性命生命使命a";
//编码: 字节数组
//默认使用工程的字符集
byte[] datas = msg.getBytes();
如上代码就实现了字符串的编码,将其转换为了字节
在编码时候可以设置使用那种字符集进行编码
String msg = "你好世界";
byte[] bytes = msg.getBytes(StandardCharsets.UTF_8);
解码: 字节->字符串
String msg = new String(datas,0,datas.length,"utf8");
如上代码就实现了Java的解码
同样,解码的时候可以指定以那种字符集进行解码
乱码的原因:
- 字节数不够:就是说原来编码完成之后比如字节的长度有12,解码的时候字节只有10了,就缺少了东西,无法复原
- 字符集不统一:编码和解码的时候使用的不是同一种字符集就会完全产生乱码