标签: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