在Java中将A字节转换为ASII字符

时间:2015-08-20 08:25:03

标签: java character-encoding char bytearray

我有一个字节数组,数组中的每个字节对应一个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字符,这是没有任何意义的。

1 个答案:

答案 0 :(得分:1)

尝试使用以下代码:

String dataConverted = new String(data, "UTF-8");
ArrayList<Character> qualAr = new ArrayList<>();
for (char c : dataConverted.toCharArray()) {
    qualAr.add(c);
}

我将您的字节数组转换为String,然后生成字符列表。 ASCII字符应表示为UTF-8中的一个字节代码。

请记住,前32个左右的ASCII字符可能会呈现为方框或空格。

Here is a link到基本的ASCII表。