如何从字节数组创建unicode字符串

时间:2019-04-17 13:29:51

标签: java android unicode

我必须将一些包含本地化值的字符串保存到字节数组中。

然后我必须从字节数组中重建字符串

我将字符串编码为字节数组,如下所示:

        byte addr = 0x08;
        for (String s : values) {
            char[] dataBytes = s.toCharArray();
            int length = s.length();
            for (int i = 0; i < 4; i++) {
                byte[] buffer = new byte[4];
                for (int j = 0; j < 4; j++) {
                    if(i * 4 + j < length ) {
                        buffer[j] = (byte) Character.codePointAt(dataBytes, i * 4 + j);
                    } else {
                        buffer[j] = (byte) 0;
                    }
                }
                nfcHandler.write(buffer, addr);
                addr++;
                TimeUnit.MILLISECONDS.sleep(10);
            }
        }

如何重建字符串?我已经尝试过

new String(bytes, StandardCharsets.UTF_8);

bytes.toString(); 

但都不起作用。

有什么想法要完成吗?

请帮助.. !!!

1 个答案:

答案 0 :(得分:0)

将字节数组解码为String的方式很好,但是在编码方面您做了太多工作。请改用String.getBytes()方法:

byte[] buffer = s.getBytes(StandardCharsets.UTF_8);
// use buffer at needed...