【发布时间】:2010-12-04 21:31:23
【问题描述】:
我必须在 Android 中将字节数组转换为字符串,但我的字节数组包含负值。
如果我再次将该字符串转换为字节数组,我得到的值与原始字节数组值不同。
我该怎么做才能获得正确的转换?我用来进行转换的代码如下:
// Code to convert byte arr to str:
byte[] by_original = {0,1,-2,3,-4,-5,6};
String str1 = new String(by_original);
System.out.println("str1 >> "+str1);
// Code to convert str to byte arr:
byte[] by_new = str1.getBytes();
for(int i=0;i<by_new.length;i++)
System.out.println("by1["+i+"] >> "+str1);
我陷入了这个问题。
【问题讨论】:
-
你为什么要首先将任意二进制数据转换为字符串?除了答案已经提到的所有字符集问题之外,还有一个事实是,如果你这样做,你就是在滥用字符串。将
byte[]用于二进制数据和String用于文本有什么问题? -
@Joachim - 有时您有外部工具可以执行诸如存储字符串之类的操作。在这种情况下,您希望能够将字节数组转换为(以某种方式编码的)字符串。
标签: java