【发布时间】:2015-08-20 08:25:03
【问题描述】:
我有一个字节数组,数组中的每个字节对应一个 ASII 字符(8 位 ASCII 字符)。我正在尝试从列表中获取整个 ASII 字符列表。
byte[] data;
ArrayList<Character> qualAr = new ArrayList<>();
for (int i = 0; i < data.length; i++) {
qualAr.add((char)data[i]);
}
上述方法没有正确打印所有ASCII字符,因为打印的许多字符包含方框和空格。如果问题不是设置编码,那么如何将编码类型设置为ASCII上面的方法?我看到的大多数例子都是 UTF-8。
更新:谢谢大家。问题不在于编码。我找到了新的文档,说明值需要使用 - ASCII+33 进行转换,如果没有,这些值会尝试打印初始 ASCII 字符,这没有任何意义。
【问题讨论】:
-
我认为您不能像上面那样简单地将每个
byte转换为char。 -
没有 8 位 ASCII 这样的东西。你的数据是什么编码的?
-
数据类型为 ASCII,描述为 8 位 ASCII 字符
标签: java character-encoding char bytearray