gpt4 book ai didi

java - java中字符串和字节之间的解码编码

转载 作者:行者123 更新时间:2023-12-01 07:15:53 24 4
gpt4 key购买 nike

byte[] bytes = new byte[] { 1, -1 };
System.out.println(Arrays.toString(new String(bytes, "UTF-8").getBytes("UTF-8")));
System.out.println(Arrays.toString(new String(bytes, "ISO-8859-1").getBytes("ISO-8859-1")));

输出:

[1, -17, -65, -67]
[1, -1]

为什么???

最佳答案

您的字节数组不是有效的 UTF-8 编码字符串...因此您从中获取的字符串

new String(bytes, "UTF-8")

包含 U+0001(第一个字节)和 U+FFFD 表示第二个字节中的错误数据。当使用 UTF-8 对该字符串进行编码时,您会得到显示的字节模式。

基本上,您不应该尝试解释任意二进制数据,就像它是以特定编码进行编码一样。如果您想将任意二进制数据表示为字符串,请使用类似 base64 的东西。

关于java - java中字符串和字节之间的解码编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2635155/

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