在java中将一串位转换为unicode字符

时间:2016-06-29 18:35:30

标签: java unicode byte bits

我试图在java中将一串位转换为Unicode字符。问题是我只能得到脊椎标志等。

字符串位=" 01010011011011100110000101110010"

任何人都知道怎么做?

1 个答案:

答案 0 :(得分:4)

值< = 32bits

使用Integer.parseInt解析二进制字符串,然后将其转换为字节数组(使用ByteBuffer),最后将字节数组转换为String

String bits = "01010011011011100110000101110010"
new String(
    ByteBuffer.allocate(4).putInt(
        Integer.parseInt(bits, 2)
    ).array(), 
    StandardCharsets.UTF_8
);

值> 32位

对于任意大bits字符串,您也可以使用BigInteger

new String(
    new BigInteger(bits, 2).toByteArray(),
    StandardCharsets.UTF_8
);

结果

Snar