Java 字节数组通过 UTF-8 编码成字符串后,无法恢复到原始字节数组

2020-05-11 23:10:31 +08:00
 yanshenxian

代码如下

byte[] bytes = new byte[] {39, 10, -111, -111, 54, 68, -2, 89, 68, 20, -92, 73, -83, -11, -5, -54, -122, -127, 97, 64};
String stringValue = new String(bytes, StandardCharsets.UTF_8);
byte[] newBytes1 = stringValue.getBytes(StandardCharsets.UTF_8);
byte[] newBytes2 = stringValue.getBytes(StandardCharsets.ISO_8859_1);
// 输出 false
System.out.println(Arrays.equals(bytes, newBytes1));
// 输出 false
System.out.println(Arrays.equals(bytes, newBytes2));

我要怎么将一个 UTF-8 编码的字符串恢复成原始字节数组呢

1000 次点击
所在节点    Java
1 条回复
yanshenxian
2020-05-12 11:51:08 +08:00
自答: 在 Stack Overflow 上找到答案了
is-there-a-way-to-recover-a-byte-array-that-represents-a-string-that-is-saved-a

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/670738

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX