gpt4 book ai didi

java - 如何获取用于构造 String 的 byte[]?

转载 作者:行者123 更新时间:2023-12-01 16:57:28 25 4
gpt4 key购买 nike

我有一些被编码为 UTF-8 字符串的二进制数据。如何从字符串中获取原始数据?二进制数据没有特定的字符编码,所以我不确定什么转换会给我我想要的。考虑以下最小示例:

byte[] input = { -84 };
String s = new String(input, Charset.forName("UTF8"));
System.out.println(Arrays.toString(s.getBytes())); // prints [63]
System.out.println(Arrays.toString(s.getBytes("UTF8"))); // prints [-17, -65, -67]

我正在寻找一种可以返回 [-84] 的方法。

最佳答案

一般来说,你不能。并非所有字节序列都是有效的 UTF-8。因此,数据可能会在(容错)byte[]->char[]->byte[] 中损坏。流程。

您可以使用 ISO_8859_1 不过,它是 byte<->char 的一对一映射。

这并不是一个罕见的问题。许多老化的协议(protocol),例如 HTTP,都是以 ISO_8859_1 开头的。记住的字符,或者 C 的 char类型。较新版本的规范会说它基于“八位位组”,又称“字节”。如果您的 API 使用字符串来表示它们,ISO_8859_1通常是更好的选择。

关于java - 如何获取用于构造 String 的 byte[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30699429/

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