Java UTF-16字符串始终使用4个字节而不是2个字节

我有一个简单的测试


@Test

public void utf16SizeTest() throws Exception {

    final String test = "п";

    // 'п' = U+043F according to unicode table

    // 43F to binary = 0100 0011 1111 (length is 11)

    // ADD '0' so length should be = 16

    // 0000 0100 0011 1111

    // 00000100(2) 00111111(2)

    //    4(10)  63(10)

    final byte[] bytes = test.getBytes("UTF-16");

    for (byte aByte : bytes) {

        System.out.println(aByte);

    }

}

如您所见,我首先将'п'转换为二进制,然后在时添加尽可能多的空位length != 16。


期望输出将是 4 , 63


但是实际的是:


-2

-1

4

63

我究竟做错了什么?


郎朗坤
浏览 299回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java