小编mar*_*did的帖子

将String转换为UTF-8字节数组会在Java中返回负值

假设我有一个字节数组,我尝试使用以下代码将其编码为UTF_8

String tekst = new String(result2, StandardCharsets.UTF_8);
System.out.println(tekst);
//where result2 is the byte array
Run Code Online (Sandbox Code Playgroud)

然后,我使用getBytes()获取字节,值为0到128

byte[] orig = tekst.getBytes();
Run Code Online (Sandbox Code Playgroud)

然后,我希望使用ff对我的byte [] orig进行频率计数:

int frequencies = new int[256];

for (byte b: orig){
    frequencies[b]++;
}
Run Code Online (Sandbox Code Playgroud)

一切顺利,直到我遇到一个错误

java.lang.ArrayIndexOutOfBoundsException: -61
Run Code Online (Sandbox Code Playgroud)

这是否意味着我的字节仍包含负值,尽管将其转换为UTF-8?我有什么不对劲吗?有人可以告诉我这个原因的清晰度我仍然是这个主题的初学者.谢谢.

java arrays string encoding utf-8

2
推荐指数
1
解决办法
1955
查看次数

标签 统计

arrays ×1

encoding ×1

java ×1

string ×1

utf-8 ×1