public class Welcome
{
public static void main(String[] args)
{
String greeting ="xx中";
int n = greeting.length();
int cpCount=greeting.codePointCount(0, greeting.length());
System.out.println(n);
System.out.println(cpCount); }
}以上代码,length获取到的代码单元数量和codePointCount获取到的代码点数量一样,都是4。我的疑问是,这里的‘中’字算一个字符,代码点不应该是3吗?谢谢。
UTF-16
UTF-32
代码点和代码单元在每种编码形式中,代码点被映射到一个或多个代码单元。“代码单元”是各个编码形式中的单个单元。代码单元的大小等效于特定编码的位数测量单位:UTF-8 中的代码单元由 8 位组成。
UTF-16 中的代码单元由 16 位组成。
UTF-32 中的代码单元由 32 位组成。
GB18030 中的代码单元由 8 位组成。
每个代码点中的代码单元数映射到代码点所需的代码单元数根据编码形式是不同在。
这个 你要 去看看 jvm虚拟机 是怎么 运作的,穿进去的全是01010101010这样的。就懂个这个