我有一个简单的测试
@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
我究竟做错了什么?
相关分类