将带有Integes的ArrayList转换为UTF-16字符串

时间:2015-02-08 19:17:38

标签: java string arraylist encoding utf-16

我有一个包含整数值的数组列表。

看起来像83 0 97 0 109 0 112 0 108 0 101 0

我知道它是UTF-16编码。

所以我想将其转换为字符串Sample

目前,当我省略空值时,我仍在使用:

String.valueOf(Character.toChars(codePoint));

这导致非英文字母的编码不正确。

有谁知道如何将这样的ArrayList转换为正确的UTF-16字符串?

1 个答案:

答案 0 :(得分:3)

public String fromUTF16LE(int... bytes) {
    byte[] b = new byte[bytes.length];
    for (int i = 0; i < b.length; ++) {
        b[i] = (byte) bytes[i];
    }
    return new String(b, StandardCharsets.UTF_16LE);
}

显然整数是字节,以UTF-16的小端顺序排列。 有人可能会检查尺寸是否均匀。 解码器可能用于错误处理。