use*_*841 2 java unicode character character-encoding
如何在JVM中表示char值?让我们说吧
char ch = 'c';
ch的值如何在JVM中表示为16位无符号整数?
太长; 没看过; 1.java中的字符使用UTF-16 2表示.正如名称所暗示的那样,一个char的大小为3位.a的默认值为0.
      
      
      char
引用有关s 的Java文档char:
Unicode字符表示
char数据类型(以及Character对象封装的值)基于原始Unicode规范,该规范将字符定义为固定宽度的16位实体.此后,Unicode标准已更改为允许表示形式需要16位以上的字符.合法代码点的范围现在是U + 0000到U + 10FFFF,称为Unicode标量值.(请参阅Unicode标准中U + n表示法的定义.)
从U + 0000到U + FFFF的字符集有时被称为基本多语言平面(BMP).代码点大于U + FFFF的字符称为增补字符.Java 2平台在char数组和String和StringBuffer类中使用UTF-16表示.在此表示中,补充字符表示为一对char值,第一个来自高代理范围(\ uD800-\uDBFF),第二个来自低代理范围(\ uDC00-\uDFFF).
因此,char值表示基本多语言平面(BMP)代码点,包括代理代码点或UTF-16编码的代码单元.int值表示所有Unicode代码点,包括补充代码点.int的较低(最低有效)21位用于表示Unicode代码点,而较高(最高有效)11位必须为零.除非另有说明,否则关于补充字符和代理字符值的行为如下:
仅接受char值的方法不支持增补字符.它们将代理范围中的char值视为未定义的字符.例如,Character.isLetter('\ uD840')返回false,即使后面跟着字符串中的任何低代理值的特定值也表示字母.接受int值的方法支持所有Unicode字符,包括补充字符.例如,Character.isLetter(0x2F81A)返回true,因为代码点值表示一个字母(CJK表意文字).在J2SE API文档中,Unicode代码点用于U + 0000和U + 10FFFF之间范围内的字符值,Unicode代码单元用于16位字符值,这些值是UTF-16编码的代码单元.有关Unicode术语的更多信息,请参阅Unicode术语表.
| 归档时间: | 
 | 
| 查看次数: | 479 次 | 
| 最近记录: |