日期:2014-05-20  浏览次数:20748 次

字胡数组转字符串
byte[] b={1,3,6,8,5,0,3,5,7,6,89};
String str=new String(b);
System.out.println(str);

结果乱码怎么回事?
但当字节数组里的元素为字符时就没有问题
byte[] b2={'3','d','5','g','9','c','6',','};
String str2=new String(b2);
System.out.println(str2);

这是什么情况啊?
乱码 string

------解决方案--------------------
byte数组存放的是asc码对应的十进制数字。
byte[] b={1,3,6,8,5,0,3,5,7,6,89};
其中 十进制ASCII码 0对应的是空格,89对应的Y,
所以,显示的乱码中,第6个是空格,最后一个是'Y'


byte[] b2={'3','d','5','g','9','c','6',','};
b2字节数组,存放的是各个字符的ascii码的十进制。
如果直接 print b2,会打印出
51,100,53,103,57,99,54,44
如果将b2转换成String, 则b2的各个十进制的ascii码将转换成各个字符。
所以没有问题。