前言
在读《Java核心技术 卷一》时,对码点和代码单元的一些个人理解;
码点和代码单元的理解
码点(code point):是指与一个编码表中的某个字符对应的代码值;
代码单元(code unit):UTF-16编码采用不同长度的编码表示所有Unicode码点。在基本的多语言级别中,每个字符用16位表示
一个码点可能包含一个或两个代码单元;
可以这么理解:一个char类型占2个字节,16位。可以表示大多数汉字,但有些特殊字符就占用两个char才能表示;每个char就是一个代码单元
实例
String s = "hi𝕆";
System.out.println(s.charAt(0));// h
System.out.println(s.charAt(1));// i
System.out.println(s.charAt(2));// ?
System.out.println(s.charAt(3));// ?
System.out.println(s.length());// 4
System.out.println(s.codePointCount(0, s.length()));//3
// 如上:s占四个char,3个码点,4个代码单元;