如何将字节数组转换为字符串,反之亦然?我必须在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);我被困在这个问题上了。
3 回答

郎朗坤
TA贡献1921条经验 获得超9个赞
byte[] bytes = {...}String str = new String(bytes, "UTF-8"); // for UTF-8 encoding

绝地无双
TA贡献1946条经验 获得超4个赞
bytes != encode(decode(bytes))
明确您正在使用的字符编码;即使用字符串构造函数和 String.toByteArray
方法具有显式字符集。 对字节数据使用正确的字符集.或者选择一个(例如“拉丁语-1”,其中所有字节序列都映射到有效的Unicode字符)。 如果您的字节是(真的)二进制数据,并且您希望能够通过“基于文本的”通道发送/接收这些数据,请使用类似base 64编码的方法. 就是为了这个目的而设计的.
添加回答
举报
0/150
提交
取消