我有一个字符,它的 Unicode 值为U+1F62D,二进制等效值为11111011000101101。现在我想将此字符转换为字节数组。我的步骤是:
1) 由于二进制表示大于2字节,我使用4字节
XXXXXXXX XXXXXXX1 11110110 00101101
2)现在我用 '0' 替换所有的 'X'
00000000 00000001 11110110 00101101
3) 十进制等效值
00000000(0) 00000001(1) 11110110(-10) 00101101(45)
这是我的代码
@Test
public void testUtf16With4Bytes() throws Exception {
assertThat(
new String(
new byte[]{0,1,-10,45},
StandardCharsets.UTF_16BE
),
is("")
);
}
这是输出结果
ava.lang.AssertionError:
Expected: is ""
but: was ""
我错过了什么?