在java中,由于byte的值范围是-128到127,当byte的值为负数时,直接转化为string可能会出问题,尤其是需要从string转回byte的时候。
出错的例子:
byte dd [] = new byte[]{123, -22, 0};
String str = new String(dd );
byte newByte [] = str.getBytes();
for(byte b:newByte ) {
System.out.print(b + " " );
}
一个low的办法是把byte转成char之后再转成string,或者找到合适的charset,亲测ISO-8859-1有效,因为是单字节编码。