标签:sys 数据 div 不包含 code set 代码 main 传输
编码:字符转二进制,便于传输
示例:
String str = "我是一个好人";
byte[] dates = str.getBytes();//括号汇总可选填字符集名称,表示按某种字符集编码
解码:将二进制机器码转化为字符,便于阅读
示例:将网络上传来的数据转换为字符串
str = new String(dates); //str与dates为上文中的变量。new String的方法请查看String类的构造方法。
转码时导致乱码可能有两种原因:
1.接收的数据不完整
如:str = new String(bytes,0,bytes.length-1);
2.字符集不统一
如:将中文使用ISO-8859-1解码导致乱码
str = new String(sBytes,"ISO-8859-1");
public class Charset { public static void main(String[] args){ String str = "我是好人"; byte[] sBytes = str.getBytes();//按默认字符集解码 System.out.println(sBytes.length); for(byte b : sBytes){ System.out.println(b); } System.out.println("------------------"); //乱码原因 //丢失数据 str = new String(sBytes,0,sBytes.length-1); System.out.println(str);//输出结果为:我是好? //编码错误 try{ str = new String(sBytes,"ISO-8859-1"); }catch(Exception e){ System.err.println("解码异常!"); } System.out.println(str);//输出结果:????? } }
标签:sys 数据 div 不包含 code set 代码 main 传输
原文地址:https://www.cnblogs.com/scopicat/p/11908745.html