关于java编码方案的关键词(unicode-16)

1、Unicode 标准已不局限于16 位编码的65,536 个字符,已扩展到包含多达 1,112,064 个字符,其中16位之后表示的是增补字符。
2、J2SE 的 5.0 版支持 Unicode 标准 4.0 版,且支持增补字符。
3、代码点codePoint、代码单元(char16位)、字符、字符子集(块)UnicodeBlock
4、有效的 Unicode 代码点范围是 U+0000 至 U+10FFFF,其中从 U+0000 至 U+FFFF 之间的字符集有时候被称为基本多语言面 (BMP);增补字符是代码点在 U+10000 至 U+10FFFF 范围之间的字符,也就是那些使用原始的 Unicode 的 16 位设计无法表示的字符。
5、增补字符编码为两个代码单元,第一个单元来自于高代理范围(U+D800 至 U+DBFF),第二个单元来自于低代理范围(U+DC00 至 U+DFFF)。在UTF-16中值 U+D800 至 U+DFFF被保留使用,可以通过方法识别是否该代码单元表示某个单单元字符,或者是否该代码单元是某个双单元字符的第一个或第二单元。
6、一个代码点在不同编码方案下由不同的代码单元组成。如下:
         下表所示为几个字符不同表达方式的比较:

Unicode 代码点
U+0041
U+00DF
U+6771
U+10400
表示字形
UTF-32 代码单元
00000041
000000DF
00006771
00010400
UTF-16 代码单元
0041
00DF
6771
D801 DC00
UTF-8 代码单元
41
C3 9F
E6 9D B1
F0 90 90 80

 7、常用的代码点与代码单元之间转换方法:
Character.toCodePoint(char high, char low)(用于将两个 UTF-16 代码单元转换为一个代码点);
Character.toChars(int codePoint)(用于将指定的代码点转换为一个或两个 UTF-16 代码单元,然后封装到一个 char[] 内);
Character.codePointAt(char[] a, int index) (用于将代码点从各种字符序列表示法中提取出来);
针对 StringBufferStringBuilder 类的 appendCodePoint(int codePoint) 方法(在将代码点插入字符序列时);
Character 类中的 isHighSurrogateisLowSurrogate 方法(可以识别用于表示增补字符的 char 值);
charCount(int codePoint) 方法(确定是否需要将某个代码点转换为一个或两个 char);
Character.UnicodeBlock.of(int codePoint) (可搜索代码点所属的 Unicode 字符子集);
Character.isValidCodePoint 方法(确保代码点有效);


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值