gpt4 book ai didi

android - 字节数组 -> 字符串 -> 字节数组

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:10 25 4
gpt4 key购买 nike

我正在尝试将 byte[] 转换为 String,然后将 String 转换为 byte[]。我检索到不相同的 byte[] 数组。

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]

为什么会这样,我怎样才能得到相同的数组?

这在我的电脑上有效,但在我的 android 上无效:

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);

最佳答案

这个函数的例子可能对你有帮助

将字符串转换为字节数组

public static byte[] convertStirngToByteArray(String s)
{
byte[] byteArray = null;
if(s!=null)
{
if(s.length()>0)
{
try
{
byteArray = s.getBytes();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
return byteArray;
}

字节数组转字符串

public static String convertByteArrayToString(byte[] byteArray)
{
String s = null;
if(byteArray!=null)
{
if(byteArray.length>0)
{
try
{
s = new String(byteArray,"UTF-8");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
return s;
}

关于android - 字节数组 -> 字符串 -> 字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19387949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com