- 码点:就是一个字符对应的十六进制编码
- 代码单元:就是一个十六位(UTF-16)的二进制数(2字节)
- char类型:就是一个十六位的二进制数,在java中用来表示一个代码单元
- UTF-8:1字节是最基本单元,即,最少可以用一个字节代表一个unicode字符。(有时候需要2-3(4?)个字节)
- UTF-16:2字节是最基本单元,即,最少使用两个字节代表一个unicode字符。(有时候需要4个字节)
java中的char类型保存的是UTF-16编码中的两字节(也就是代码单元),所以一个char类型不能对应unicode中的所有字符(因为有时候需要用四个字节表示)。 所以java中不建议采用char类型保存字符,而建议使用String。
- length() 返回代码单元数量,码点数量使用codePointCount获取