Unicode是一个编码方案,Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode 编码共有三种具体实现,分别为utf-8,utf-16,utf-32,其中utf-8占用一到四个字节,utf-16占用二或四个字节,utf-32占用四个字节。Unicode 码在全球范围的信息交换领域均有广泛的应用。
定义
Unicode码扩展自ASCII字元集。在严格的ASCII中,每个字元用7位元表示,或者电脑上普遍使用的每字元有8位元宽;而Unicode使用全16位元字元集。这使得Unicode能够表示世界上所有的书写语言中可能用於电脑通讯的字元、象形文字和其他符号。Unicode最初打算作为ASCII的补充,可能的话,最终将代替它。考虑到ASCII是电脑中最具支配地位的标准,所以这的确是一个很高的目标。
Unicode影响到了电脑工业的每个部分,但也许会对作业系统和程式设计语言的影响最大。从这方面来看,我们已经上路了。Windows NT从底层支持Unicode。
计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。
因为1位二进制数可以表示(2^1=)2种状态:0、1;而2位二进制数可以表示(2^2)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(2^7=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。
第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
ASCII控制字符
二进制
|
十进制
|
十六进制
|
缩写
|
可以显示的表示法
|
名称/意义
|
---|---|---|---|---|---|
0
|
00
|
NUL
|
␀
|
空字符(Null)
|
|
1
|
01
|
SOH
|
␁
|
标题开始
|
|
2
|
02
|
STX
|
␂
|
本文开始
|
|
3
|
03
|
ETX
|
␃
|
本文结束
|
|
4
|
04
|
EOT
|
␄
|
传输结束
|
|
5
|
05
|
ENQ
|
␅
|
请求
|
|
6
|
06
|
ACK
|
␆
|
确认回应
|
|
7
|
07
|
BEL
|
␇
|
响铃
|
|
8
|
08
|
BS
|
␈
|
退格
|
|
9
|
09
|
HT
|
␉
|
水平定位符号
|
|
10
|
0A
|
LF
|
␊
|
换行键
|
|
11
|
0B
|
VT
|
␋
|
垂直定位符号
|
|
12
|
0C
|
FF
|
␌
|
换页键
|
|
13
|
0D
|
CR
|
␍
|
归位键
|
|
14
|
0E
|
SO
|
␎
|
取消变换(Shift out)
|
|
15
|
0F
|
SI
|
␏
|
启用变换(Shift in)
|
|
16
|
10
|
DLE
|
␐
|
跳出数据通讯
|
|
17
|
11
|
DC1
|
␑
|
设备控制一(XON 启用软件速度控制)
|
|
18
|
12
|
DC2
|
␒
|
设备控制二
|
|
19
|
13
|
DC3
|
␓
|
设备控制三(XOFF 停用软件速度控制)
|
|
20
|
14
|
DC4
|
␔
|
设备控制四
|
|
21
|
15
|
NAK
|
␕
|
确认失败回应
|
|
22
|
16
|
SYN
|
␖
|
同步用暂停
|
|
23
|
17
|
ETB
|
␗
|
区块传输结束
|
|
24
|
18
|
CAN
|
␘
|
取消
|
|
25
|
19
|
EM
|
␙
|
连接介质中断
|
|
26
|
1A
|
SUB
|
␚
|
替换
|
|
27
|
1B
|
ESC
|
␛
|
跳出
|
|
28
|
1C
|
FS
|
␜
|
文件分割符
|
|
29
|
1D
|
GS
|
␝
|
组群分隔符
|
|
30
|
1E
|
RS
|
␞
|
记录分隔符
|
|
31
|
1F
|
US
|
␟
|
单元分隔符
|
|
127
|
7F
|
DEL
|
␡
|
删除
|
注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
增添Unicode码内容:它前128个字符就是ASCII码,之后是扩展码。在Unicode码中,各个字符块基于同样的标准。其中有希腊字母,西里尔文,亚美尼亚文,希伯来文等。而汉文,韩语,日语的象形文字占用从0X3000到0X9FFF的代码。最杰出的地方是,它只有一个字符集,有效的避免了双字节字符集的二义性。缺点是:占用的内存空间比ASCII大1倍。
Unicode码:Unicode码也是一种国际标准编码,采用二个字节编码,与ASCII码不兼容。在网络、Windows系统和很多大型软件中得到应用。