我试图将byte[]转换为String,然后将String转换为byte[]。但我得到的byte[]数组并不相同。
执行后我得到了以下结果:
我看过这篇文章Hex-encoded String to Byte Array,但是Android没有Hex类。 编辑 对不起,我错了,Base64无法使用。
在Android 2.3.3、2.3.4、4.2、4.3上测试过,并且可以正常工作。
byte[] bArray1 = myFunction();
System.out.println("array1 = " + bArray1.toString());
String str = new String(bArray1);
byte[] bArray2 = str.getBytes();
System.out.println("array2 = " + bArray2.toString());
执行后我得到了以下结果:
array1 = [-15, -87, -44, 61, -115, 23, -3, 75, 99, 36, -49, 21, -41, -63, 100, -49]
array2 = [-17, -65, -67, -17, -65, -67, 61, -17, -65, -67, 23, -17, -65, -67, 75, 99, 36, -17, -65, -67, 21, -17, -65, -67, -17, -65, -67, 100, -17, -65, -67, -17, -65, -67]
为什么会发生这种情况?我应该如何获得相同的数组?
在我的电脑上可以运行,但在我的安卓手机上不行:
byte[] bArray1 = myFunction();
String str = Base64.encodeToString(bArray1, Base64.DEFAULT);
byte[] bArray2 = Base64.decode(str, Base64.DEFAULT);
我看过这篇文章Hex-encoded String to Byte Array,但是Android没有Hex类。 编辑 对不起,我错了,Base64无法使用。
在Android 2.3.3、2.3.4、4.2、4.3上测试过,并且可以正常工作。
byte[] bArray1 = myFunction();
String str = Base64.encodeToString(bArray1, Base64.DEFAULT);
byte[] bArray2 = Base64.decode(str, Base64.DEFAULT);