将 String 转换为 byte[] 数组并保持相同的值

问题描述

我正在开发一个 Java 项目。 我使用密码进行编码和解码。 Cipher 返回一个字节数组。 由于某些原因,我必须在字符串中发送这个字节数组 您对如何取回相同的字节数组有任何想法吗?

例如,如果我有字符串:

"[B@5024d44"

并且我想转换为 byte[] 但我希望 byte[] 等于 [B@5024d44。可能吗?

感谢您的回答。

解决方法

str(x1_dtype.__class__) == np.int64 告诉您您有一个字节数组,并且告诉您没有任何内容关于其中的内容。您不能将其转换回任何有意义的内容。

要将字节数组可逆地转换为 [B@5024d44,请使用 Base64

,

如果你有一个字符串[B@5024d44,你可以把它转换成一个byte[]数组,然后再把这个数组转换回一个字符串。这两个字符串是相等的,但数组不等于字符串,数组的内容也不等于字符串:

String str = "[B@5024d44";
byte[] arr = str.getBytes(StandardCharsets.UTF_8);
String str1 = new String(arr,StandardCharsets.UTF_8);

// strings are equal
System.out.println(str.equals(str1)); // true

// string representation of the array
System.out.println(arr); // [B@5451c3a8

// contents of the array
System.out.println(Arrays.toString(arr));
// [91,66,64,53,48,50,52,100,52]

另见:How can I convert a string into a GZIP Base64 string?