Java 如何在其 16 位字符类型中存储 UTF-16 字符?
根据Java SE 7规范,Java使用Unicode UTF-16标准来表示字符。当想象一个由16位变量组成的简单数组,每个变量包含一个字符时,生活很简单。String
不幸的是,有些代码点的16位根本不够(我相信它是所有Unicode字符的16/17)。因此,在 中,这不会造成直接问题,因为当想要使用额外的两个字节存储这些~1.048.576个字符之一时,只需使用其中的两个数组位置即可。String
String
这不会造成任何直接问题,适用于 s,因为总会有另外两个字节。虽然当涉及到单个变量时,与UTF-16编码相比,它具有16位的固定长度,但这些字符如何存储,特别是Java如何用其2字节“char”类型做到这一点?String