a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 140|回复: 0

[专业语言] Java认证之Java中编码以及Unicode总结(6)

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
Java认证之Java中编码以及Unicode总结(6)
4 B; E( I/ q' ` 8
: Z% @% z% K( ~% o6 `0 S  例如我们有一个增补字符???(哈哈,你看到了三个问号对吧?因为我的系统显示不出这个字符),它在Unicode中的编号是U+2F81A,当在程序中需要使用这个字符的时候,就可以这样来写:0 N' o- T' x, A5 H
  String s=String.valueOf(Character.toChars(0×2F81A));  f4 ]/ O6 }$ h, ^
  char[]chars=s.toCharArray();) d) Y1 b3 G" s
  for(char c:chars){
8 C$ E; W8 F( p  k  System.out.format(”%x”,(short)c);! X* q6 @3 n* A# L' g4 h
  }! R" G/ i% c" k/ V- @5 B
  后面的for循环把这个字符的UTF-16编码打印了出来,结果是d87edc1a注意到了吗?这个字符变成了两个char型变量,其中0xd87e就是高代理部分的值,0xdc1a就是低代理的值。5 @5 ~7 i: q/ q; c; N5 \8 V  m
  Unicode字符集编码(Universal Multiple-Octet Coded Character Set)通用多八位编码字符集的简称,支持世界上超过650种语言的国际字符集。Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode 标准始终使用十六进制数字,而且在书写时在前面加上前缀“U+”,字母“A”的编码书写为“U+0041”。- ?/ q9 l. d( }# y# \( I
  Unicode计划使用了17个平面,一共有 17*65536=1114112个码位。在Unicode 5.0.0版本中,已定义的码位只有238605个,分布在平面0、平面1、平面2、平面14、平面15、平面16。其中平面15和平面16上只是定义了两个各占65534个码位的专用区(Private Use Area),分别是0xF0000-0xFFFFD和0×100000-0×10FFFD。所谓专用区,就是保留给大家放自定义字符的区域,可以简写为 PUA。平面0也有一个专用区:0xE000-0xF8FF,有6400个码位。平面0的 0xD800-0xDFFF,共2048个码位,是一个被称作代理区(Surrogate)的特殊区域。代理区的目的用两个UTF-16字符表示BMP以外的字符。在介绍UTF-16编码时会介绍。如前所述在Unicode 5.0.0版本中,238605-65534*2-6400-2408=99089。余下的99089个已定义码位分布在平面0、平面1、平面2和平面 14上,它们对应着Unicode目前定义的99089个字符,其中包括71226个汉字。平面0、平面1、平面2和平面14上分别定义了52080、 3419、43253和337个字符。平面2的43253个字符都是汉字。平面0上定义了27973个汉字。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-13 03:14 , Processed in 0.205114 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表