gpt4 book ai didi

java - 将 byte[] 转换为字符串

转载 作者:搜寻专家 更新时间:2023-10-31 08:11:16 25 4
gpt4 key购买 nike

我有一个 byte[] 类型的字节数组,长度为 17 个字节,我想将其转换为字符串,并希望将此字符串用于另一次比较,但我得到的输出不是要验证的格式,我我正在使用以下方法进行转换。我想输出为易于验证的字符串,并提供相同的字符串进行比较。

    byte[] byteArray = new byte[] {0,127,-1,-2,-54,123,12,110,89,0,0,0,0,0,0,0,0};
String value = new String(byteArray);
System.out.println(value);

输出:����{nY

最佳答案

这是什么编码?您应该明确定义它:

new String(byteArray, Charset.forName("UTF-32"));  //or whichever you use

否则结果不可预测(来自 String.String(byte[]) 构造函数 JavaDoc):

Constructs a new String by decoding the specified array of bytes using the platform's default charset

顺便说一句,我刚刚用 UTF-8、UTF-16 和 UTF-32 尝试过 - 都产生了虚假结果。一长串 0 让我相信这实际上不是文本。您从哪里获得这些数据?

更新:我已经尝试使用我机器上可用的所有字符集:

for (Map.Entry<String, Charset> entry : Charset.availableCharsets().entrySet())
{
final String value = new String(byteArray, entry.getValue());
System.out.println(entry.getKey() + ": " + value);
}

并且没有编码产生任何接近人类可读文本的内容...您的输入不是文本。

关于java - 将 byte[] 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9309899/

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