文档库 最新最全的文档下载
当前位置:文档库 › Unicode字符集

Unicode字符集

Unicode字符集
Unicode字符集

Unicode通用字符集

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode 也在面世以来的十多年里得到普及。

Unicode 是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式(The Unicode Standard,目前第五版由Addison-Wesley Professional出版

unicode,ISBN-10: 0321480910)对外发表。

2006年7月的最新版本的Unicode 是5.0版本。2005年3月31日推出的Unicode 4.1.0 。另外,5.0 Beta于2005年12月12日推出,5.2版本(unicode standard)于2009年10月1日正式推出,以供各会员评价。

目前Unicode标准,6.1版已发布(2012年1月31日)。在unicode联盟网站上可以查看完整的6.1的核心规范。

Unicode定义了大到足以代表人类所有可读字符的字符集。

Java语言就用到了Unicode编码,从而实现了该语言的国际通用性。

编辑本段Unicode 的编码和实现

大概来说,Unicode 编码系统可分为编码方式和实现方式两个层次。

编码方式

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode 用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

通用字符集(Universal Character Set,UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4用4个字节编码。

历史上存在两个独立的尝试创立单一字符集的组织,即国际标准化组织(ISO)和多语言软件制造商组成的统一码联盟。前者开发的ISO/IEC 10646 项目,后者开发的统一码项目。因此最初制定了不同的标准。

1991年前后,两个项目的参与者都认识到,世界不需要两个不兼容的字符集。于是,它们开始合并双方的工作成果,并为创立一个单一编码表而协同工作。从Unicode 2.0开始,Unicode采用了与ISO 10646-1相同的字库和字码;ISO也承诺,ISO 10646将不会替超出U+10FFFF的UCS-4编码赋值,以使得两者保持一致。两个项目仍都存在,并独立地公布各自的标准。但统一码联盟和ISO/IEC JTC1/SC2都同意保持两者标准的码表兼容,并紧密地共同调整任何未来的扩展。在发布的时候,Unicode一般都会采用有关字码最常见的字型,但ISO 10646一般都尽可能采用Century字型。

UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个平面(plane)。每个平面根据第3个字节分为256行(row),每行有256个码位(cell)。group 0的平面0被称作BMP(Basic Multilingual Plane)。将UCS-4的BMP去掉前

面的两个零字节就得到了UCS-2。每个平面有2^16=65536个码位。Unicode计划使用了17个平面,一共有17*65536=1114112个码位。在Unicode 5.0.0版本中,已定义的码位只有238605个,分布在平面0、平面1、平面2、平面14、平面15、平面16。其中平面15和平面16上只是定义了两个各占65534个码位的专用区(Private Use Area),分别是0xF0000-0xFFFFD和0x100000-0x10FFFD。所谓专用区,就是保留给大家放自定义字符的区域,可以简写为PUA。

平面0也有一个专用区:0xE000-0xF8FF,有6400个码位。平面0的0xD800-0xDFFF,共2048个码位,是一个被称作代理区(Surrogate)的特殊区域。代理区的目的用两个UTF-16字符表示BMP以外的字符。在介绍UTF-16编码时会介绍。

如前所述在Unicode 5.0.0版本中,238605-65534*2-6400-2048=99089。余下的99089个已定义码位分布在平面0、平面1、平面2和平面14上,它们对应着Unicode目前定义的99089个字符,其中包括71226个汉字。平面0、平面1、平面2和平面14上分别定义了52080、3419、43253和337个字符。平面2的43253个字符都是汉字。平面0上定义了27973个汉字。

实现方式

在Unicode中:汉字“字”对应的数字是23383。在Unicode中,我们有很多方式将数字23383表示成程序中的数据,包括:UTF-8、UTF-16、UTF-32。UTF是“UCS Transformation Format”的缩写,可以翻译成Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据。例如,“汉字”对应的数字是0x6c49和0x5b57,而编码的程序数据是:BYTE data_utf8[] = {0xE6, 0xB1, 0x89, 0xE5, 0xAD, 0x97}; // UTF-8编码

WORD data_utf16[] = {0x6c49, 0x5b57}; // UTF-16编码

DWORD data_utf32[] = {0x6c49, 0x5b57}; // UTF-32编码

这里用BYTE、WORD、DWORD分别表示无符号8位整数,无符号16位整数和无符号32位整数。UTF-8、UTF-16、UTF-32分别以BYTE、WORD、DWORD作为编码单位。“汉字”的UTF-8编码需要6个字节。“汉字”的UTF-16编码需要两个WORD,大小是4个字节。“汉字”的UTF-32编码需要两个DWORD,大小是8个字节。根据字节序的不同,UTF-16可以被实现为UTF-16LE或UTF-16BE,UTF-32可以被实现为UTF-32LE或UTF-32BE。下面介绍UTF-8、UTF-16、UTF-32、字节序和BOM。

UTF-8

UTF-8以字节为单位对Unicode进行编码。从Unicode到UTF-8的编码方式如下:

UTF-8的特点是对不同范围的字符使用不同长度的编码。对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同。UTF-8编码的最大长度是4个字节。从上表可以看出,4字节模板有21个x,即可以容纳21位二进制数字。Unicode的最大码位0x10FFFF也只有21位。

例1:“汉”字的Unicode编码是0x6C49。0x6C49在0x0800-0xFFFF之间,使用用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将0x6C49写成二进制是:0110 1100 0100 1001,用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。

例2:Unicode编码0x20C30在0x010000-0x10FFFF之间,使用用4字节模板了:11110xxx

10xxxxxx 10xxxxxx 10xxxxxx。将0x20C30写成21位二进制数字(不足21位就在前面补0):0 0010 0000 1100 0011 0000,用这个比特流依次代替模板中的x,得到:11110000 10100000 10110000 10110000,即F0 A0 B0 B0。

UTF-16

UTF-16编码以16位无符号整数为单位。我们把Unicode

unicode

编码记作U。编码规则如下:

如果U<0x10000,U的UTF-16编码就是U对应的16位无符号整数(为书写简便,下文将16位无符号整数记作WORD)。

如果U≥0x10000,我们先计算U'=U-0x10000,然后将U'写成二进制形式:yyyy yyyy yyxx xxxx xxxx,U的UTF-16编码(二进制)就是:110110yyyyyyyyyy 110111xxxxxxxxxx。

为什么U'可以被写成20个二进制位?Unicode的最大码位是0x10ffff,减去0x10000后,U'的最大值是0xfffff,所以肯定可以用20个二进制位表示。例如:Unicode编码0x20C30,减去0x10000后,得到0x10C30,写成二进制是:0001 0000 1100 0011 0000。用前10位依次替代模板中的y,用后10位依次替代模板中的x,就得到:1101100001000011 1101110000110000,即0xD843 0xDC30。

按照上述规则,Unicode编码0x10000-0x10FFFF的UTF-16编码有两个WORD,第一个WORD的高6位是110110,第二个WORD的高6位是110111。可见,第一个WORD的取值范围(二进制)是11011000 00000000到11011011 11111111,即0xD800-0xDBFF。第二个WORD的取值范围(二进制)是11011100 00000000到11011111 11111111,即0xDC00-0xDFFF。

为了将一个WORD的UTF-16编码与两个WORD的UTF-16编码区分开来,Unicode编码的设计者将0xD800-0xDFFF保留下来,并称为代理区(Surrogate):

高位替代就是指这个范围的码位是两个WORD的UTF-16编码的第一个WORD。低位替代就是指这个范围的码位是两个WORD的UTF-16编码的第二个WORD。那么,高位专用替代是什么意思?我们来解答这个问题,顺便看看怎么由UTF-16编码推导Unicode编码。

如果一个字符的UTF-16编码的第一个WORD在0xDB80到0xDBFF之间,那么它的Unicode编码在什么范围内?我们知道第二个WORD的取值范围是0xDC00-0xDFFF,所以这个字符的UTF-16编码范围应该是0xDB80 0xDC00到0xDBFF 0xDFFF。我们将这个范围写成二进制:

1101101110000000 11011100 00000000 - 1101101111111111 1101111111111111

按照编码的相反步骤,取出高低WORD的后10位,并拼在一起,得到

1110 0000 0000 0000 0000 - 1111 1111 1111 1111 1111

XML

即0xe0000-0xfffff,按照编码的相反步骤再加上0x10000,得到0xf0000-0x10ffff。这就是UTF-16编码的第一个WORD在0xdb80到0xdbff之间的Unicode编码范围,即平面15和平面16。因为Unicode标准将平面15和平面16都作为专用区,所以0xDB80到0xDBFF之间的保留码位被称作高位专用替代。

UTF-32

UTF-32编码以32位无符号整数为单位。Unicode的UTF-32编码就是其对应的32位无符号整数。

字节序

根据字节序的不同,UTF-16可以被实现为UTF-16LE或UTF-16BE,UTF-32可以被实现为UTF-32LE或UTF-32BE。例如:

那么,怎么判断字节流的字节序呢?Unicode标准建议用BOM(Byte Order Mark)来区分字节序,即在传输字节流前,先传输被作为BOM的字符"零宽无中断空格"。这个字符的编码是FEFF,而反过来的FFFE(UTF-16)和FFFE0000(UTF-32)在Unicode中都是未定义的码位,不应该出现在实际传输中。下表是各种UTF编码的BOM:

编辑本段UCS-2 编码范围

Unicode 到目前为止所定义的五个平面中,第0平面(BMP)最为重要. 其编码分布如下.

注:中文范围4E00-9FBF:CJK 统一表意符号(CJK Unified Ideographs)

0000-007F:C0控制符及基本拉丁文(C0 Control and Basic Latin)

0080-00FF:C1控制符及拉丁文补充-1 (C1 Control and Latin 1 Supplement)

0100-017F:拉丁文扩展-A (Latin Extended-A)

0180-024F:拉丁文扩展-B (Latin Extended-B)

0250-02AF:国际音标扩展(IPA Extensions)

02B0-02FF:空白修饰字母(Spacing Modifiers)

0300-036F:结合用读音符号(Combining Diacritics Marks) 0370-03FF:希腊文及科普特文(Greek and Coptic)

Microsoft Word

0400-04FF:西里尔字母(Cyrillic)

0500-052F:西里尔字母补充(Cyrillic Supplement)

0530-058F:亚美尼亚语(Armenian)

0590-05FF:希伯来文(Hebrew)

0600-06FF:阿拉伯文(Arabic)

0700-074F:叙利亚文(Syriac)

0750-077F:阿拉伯文补充(Arabic Supplement)

0780-07BF:马尔代夫语(Thaana)

07C0-077F:西非书面语言(N'Ko)

0800-085F:阿维斯塔语及巴列维语(Avestan and Pahlavi) 0860-087F:Mandaic

0880-08AF:撒马利亚语(Samaritan)

0900-097F:天城文书(Devanagari)

0980-09FF:孟加拉语(Bengali)

0A00-0A7F:锡克教文(Gurmukhi)

0A80-0AFF:古吉拉特文(Gujarati)

0B00-0B7F:奥里亚文(Oriya)

0B80-0BFF:泰米尔文(Tamil)

0C00-0C7F:泰卢固文(Telugu)

0C80-0CFF:卡纳达文(Kannada)

0D00-0D7F:德拉维族语(Malayalam)

0D80-0DFF:僧伽罗语(Sinhala)

0E00-0E7F:泰文(Thai)

0E80-0EFF:老挝文(Lao)

0F00-0FFF:藏文(Tibetan)

1000-109F:缅甸语(Myanmar)

10A0-10FF:格鲁吉亚语(Georgian)

1100-11FF:朝鲜文(Hangul Jamo)

1200-137F:埃塞俄比亚语(Ethiopic)

1380-139F:埃塞俄比亚语补充(Ethiopic Supplement)

13A0-13FF:切罗基语(Cherokee)

1400-167F:统一加拿大土著语音节(Unified Canadian Aboriginal Syllabics) 1680-169F:欧甘字母(Ogham)

16A0-16FF:如尼文(Runic)

1700-171F:塔加拉语(Tagalog)

1720-173F:Hanunóo

1740-175F:Buhid

1760-177F:Tagbanwa

1780-17FF:高棉语(Khmer)

1800-18AF:蒙古文(Mongolian)

18B0-18FF:Cham

1900-194F:Limbu

1950-197F:德宏泰语(Tai Le)

1980-19DF:新傣仂语(New Tai Lue)

19E0-19FF:高棉语记号(Kmer Symbols)

1A00-1A1F:Buginese

1A20-1A5F:Batak

1A80-1AEF:Lanna

1B00-1B7F:巴厘语(Balinese)

1B80-1BB0:巽他语(Sundanese)

1BC0-1BFF:Pahawh Hmong

1C00-1C4F:雷布查语(Lepcha)

1C50-1C7F:Ol Chiki

1C80-1CDF:曼尼普尔语(Meithei/Manipuri)

1D00-1D7F:语音学扩展(Phonetic Extensions)

1D80-1DBF:语音学扩展补充(Phonetic Extensions Supplem

unicode

ent)

1DC0-1DFF:结合用读音符号补充(Combining Diacritics Marks Supplement) 1E00-1EFF:拉丁文扩充附加(Latin Extended Additional)

1F00-1FFF:希腊语扩充(Greek Extended)

2000-206F:常用标点(General Punctuation)

2070-209F:上标及下标(Superscripts and Subscripts)

20A0-20CF:货币符号(Currency Symbols)

20D0-20FF:组合用记号(Combining Diacritics Marks for Symbols)

2100-214F:字母式符号(Letterlike Symbols)

2150-218F:数字形式(Number Form)

2190-21FF:箭头(Arrows)

2200-22FF:数学运算符(Mathematical Operator)

2300-23FF:杂项工业符号(Miscellaneous Technical)

2400-243F:控制图片(Control Pictures)

2440-245F:光学识别符(Optical Character Recognition)

2460-24FF:封闭式字母数字(Enclosed Alphanumerics)

2500-257F:制表符(Box Drawing)

2580-259F:方块元素(Block Element)

25A0-25FF:几何图形(Geometric Shapes)

2600-26FF:杂项符号(Miscellaneous Symbols)

2700-27BF:印刷符号(Dingbats)

27C0-27EF:杂项数学符号-A (Miscellaneous Mathematical Symbols-A)

27F0-27FF:追加箭头-A (Supplemental Arrows-A)

2800-28FF:盲文点字模型(Braille Patterns)

2900-297F:追加箭头-B (Supplemental Arrows-B)

2980-29FF:杂项数学符号-B (Miscellaneous Mathematical Symbols-B)

2A00-2AFF:追加数学运算符(Supplemental Mathematical Operator)

2B00-2BFF:杂项符号和箭头(Miscellaneous Symbols and Arrows)

2C00-2C5F:格拉哥里字母(Glagolitic)

2C60-2C7F:拉丁文扩展-C (Latin Extended-C)

2C80-2CFF:古埃及语(Coptic)

2D00-2D2F:格鲁吉亚语补充(Georgian Supplement)

2D30-2D7F:提非纳文(Tifinagh)

2D80-2DDF:埃塞俄比亚语扩展(Ethiopic Extended)

2E00-2E7F:追加标点(Supplemental Punctuation)

2E80-2EFF:CJK 部首补充(CJK Radicals Supplement)

2F00-2FDF:康熙字典部首(Kangxi Radicals)

2FF0-2FFF:表意文字描述符(Ideographic Description Characters)

3000-303F:CJK 符号和标点(CJK Symbols and Punctuation)

3040-309F:日文平假名(Hiragana)

30A0-30FF:日文片假名(Katakana)

3100-312F:注音字母(Bopomofo)

3130-318F:朝鲜文兼容字母(Hangul Compatibility Jamo)

3190-319F:象形字注释标志(Kanbun)

31A0-31BF:注音字母扩展(Bopomofo Extended)

31C0-31EF:CJK 笔画(CJK Strokes)

31F0-31FF:日文片假名语音扩展(Katakana Phonetic Extensions)

3200-32FF:封闭式CJK 文字和月份(Enclosed CJK Letters and Months)

3300-33FF:CJK 兼容(CJK Compatibility)

3400-4DBF:CJK 统一表意符号扩展A (CJK Unified Ideographs Extension A)

4DC0-4DFF:易经六十四卦符号(Yijing Hexagrams Symbols)

4E00-9FBF:CJK 统一表意符号(CJK Unified Ideographs)

A000-A48F:彝文音节(Yi Syllables)

A490-A4CF:彝文字根(Yi Radicals)

A500-A61F:Vai

A660-A6FF:统一加拿大土著语音节补充(Unified Canadian Aboriginal Syllabics Supplement)

A700-A71F:声调修饰字母(Modifier Tone Letters)

A720-A7FF:拉丁文扩展-D (Latin Extended-D)

A800-A82F:Syloti Nagri

A840-A87F:八思巴字(Phags-pa)

A880-A8DF:Saurashtra

A900-A97F:爪哇语(Javanese)

A980-A9DF:Chakma

AA00-AA3F:Varang Kshiti

AA40-AA6F:Sorang Sompeng

AA80-AADF:Newari

AB00-AB5F:越南傣语(Vi?t Thái)

AB80-ABA0:Kayah Li

AC00-D7AF:朝鲜文音节(Hangul Syllables)

D800-DBFF:High-half zone of UTF-16

DC00-DFFF:Low-half zone of UTF-16

E000-F8FF:自行使用区域(Private Use Zone)

F900-FAFF:CJK 兼容象形文字(CJK Compatibility Ideographs)

FB00-FB4F:字母表达形式(Alphabetic Presentation Form)

FB50-FDFF:阿拉伯表达形式A (Arabic Presentation Form-A)

FE00-FE0F:变量选择符(Variation Selector)

FE10-FE1F:竖排形式(Vertical Forms)

FE20-FE2F:组合用半符号(Combining Half Marks)

FE30-FE4F:CJK 兼容形式(CJK Compatibility Forms)

FE50-FE6F:小型变体形式(Small Form Variants)

FE70-FEFF:阿拉伯表达形式B (Arabic Presentation Form-B)

FF00-FFEF:半型及全型形式(Halfwidth and Fullwidth Form)

FFF0-FFFF:特殊(Specials)

编辑本段非Unicode 环境

在非Unicode 环境下,由于不同国家和地区采用的字符集不一致,很可能出现无法正常显示所有字符的情况。微软公司使用了代码页(Codepage)转换表的技术来过渡性的部分解决这一问题,即通过指定的转换表将非Unicode 的字符编码转换为同一字符对应的系统内部使用的Unicode 编码。可以在“语言与区域设置”中选择一个代码页作为非Unicode 编码所采用的默认编码方式,如936为简体中文GBK,950为正体中文Big5(皆指PC上使用的)。在这种情况下,一些非英语的欧洲语言编写的软件和文档很可能出现乱码。而将代码页设置为相应语言中文处理又会出现问题,这一情况无法避免。从根本上说,完全采用统一编码才是解决之道,但目前尚无法做到这一点。

代码页技术现在广泛为各种平台所采用。UTF-7 的代码页是65000,UTF-8 的代码页是65001。

编辑本段XML 和Unicode

XML及其子集HTML采用UTF-8作为标准字集,理论上我们可以在各种支持XML标准的浏览器上显示任何地区文字的网页,只要电脑本身安装有合适的字体即可。可以利用&#nnn;的格式显示特定的字符。nnn代表该字符的十进制Unicode 代码。如果采用十六进制代码,在编码之前加上x字符即可。但部分旧版本的浏览器可能无法识别十六进制代码。

然而部分由于Unicode 版本发展原因,很多浏览器只能显示UCS-2 完整字符集也即现

在使用的Unicode 版本中的一个小子集。下表可以检验您的浏览器怎样显示各种各样的Unicode 代码:

代码字符标准名称(英语) 在浏览器上的显示

A&#大写拉丁字母"A" A

&#szlig; 小写拉丁字母"Sharp S" ß

&#thorn; 小写拉丁字母"Thorn" þ

Δ大写希腊字母"Delta" Δ

Й 大写斯拉夫字母"Short I" Й

?希伯来字母"Qof" ?

?阿拉伯字母"Meem" ?

?泰文数字7 ?

?埃塞俄比亚音节文字"Qha" ?

あ日语平假名"A" あ

ア日语片假名"A" ア

叶简体汉字"叶" 叶

叶繁体汉字"叶" 叶

?韩国音节文字" Yeob" ?

编辑本段输入Unicode

综述

除了输入法外,操作系统会提供几种方法输入Unicode。像是Windows 2000之后的Windows系统就提供一个可点击的表。例如在Microsoft Word或者金山WPS之下,按下Alt 键不放,输入0 和某个字符的Unicode 编码(十进制),再松开Alt 键即可得到该字符,如Alt + 033865会得到Unicode字符“叶”(繁体)。另外按Alt + X 组合键,MS Word 也会将光标前面的字符同其十六进制的四位Unicode 编码进行互相转换。

Unicode 编码表反弹

0000-0FFF 8000-8FFF 10000-10FFF 20000-20FFF 28000-28FFF

1000-1FFF 9000-9FFF 21000-21FFF 29000-29FFF

2000-2FFF A000-AFFF 22000-22FFF 2A000-2AFFF

3000-3FFF B000-BFFF 23000-23FFF

4000-4FFF C000-CFFF 1D000-1DFFF 24000-24FFF 2F000-2FFFF

5000-5FFF D000-DFFF 25000-25FFF

6000-6FFF E000-EFFF 26000-26FFF

7000-7FFF F000-FFFF 27000-27FFF E0000-E0FFF

Unicode 目前已经有 5.0版本。世界上有一大批计算机、语言学等科学家专门研究Unicode,到了现在Unicode标准已经不单是一个编码标准,还是记录人类语言文字资料的一个巨大的数据库,同时从事人类文化遗产的发掘和保护工作。

对于中文而言,Unicode 16编码里面已经包含了GB18030里面的所有汉字(27484个字),目前Unicode标准准备把康熙字典的所有汉字放入到Unicode 32bit编码中。

简单地说,Unicode扩展自ASCII字元集。在严格的ASCII中,每个字元用7位元表示,或者电脑上普遍使用的每字元有8位元宽;而Unicode使用全16位元字元集。这使得Unicode 能够表示世界上所有的书写语言中可能用於电脑通讯的字元、象形文字和其他符号。Unicode 最初打算作为ASCII的补充,可能的话,最终将代替它。考虑到ASCII是电脑中最具支配地

位的标准,所以这的确是一个很高的目标。

Unicode影响到了电脑工业的每个部分,但也许会对作业系统和程序设计语言的影响最大。从这方面来看,我们已经上路了。Windows NT从底层支持Unicode(不幸的是,Windows 98只是小部分支援Unicode)。先天即被ANSI束缚的C程序设计语言通过对宽字元集的支持来支持Unicode。

输入方法

中文输入法截至2009年3月,可以使用微软拼音2003或2007版本海峰五笔9.3版本,新注音输入法和VimIM 进行输入。

微软拼音在输入法启动状态下,单击语言栏上的“功能菜单”按钮,指向“辅助输入法”即可发现“Unicode码输入方式”,利用它可以直接输入Unicode相应十六进制值的方式输入相应文字。例如中文“胥”输入“5066”,朝鲜语文字“?”输入“c145”(不需要在前面加0x或x)。海峰五笔此输入法已经直接支持透过五笔码输入方式输入Unicode内的任意中日韩汉字,但无法使用键入Unicode码的方式输入。例如汉字(Unicode部分)“?”为“keks”,CJK扩展

B区的“?”为“iyho”和CJK扩展C区的“”为“muih”。新注音输入法在输入法启动状态时,打

入键盘上的“多功能前导字符键”(及通用键盘上之“`”),第一次使用会弹出说明。输入Unicode 字符“胥”则是在键盘上键入“`U5066”。而韩语中的“?”,则输入“`UC145”。而要输入日语自制汉字“卡”,则是“`U5CE0”。VimIM 在Vim 环境中,可以直接键入十进制或十六进制Unicode 码。既不需要启动输入法,也不需要码表。

日文输入法使用Microsoft IME 2007,可以在IME PAD里找到UNICODE的点击表。点击字符即可输入。选择字体可以预览字符效果。

其他除了输入法外,操作系统也会提供另外几种方法输入Unicode。像是Windows 2000之后的Windows 系统就提供一个可点击的字符映射表。又或者在Microsoft Word下,按下Alt 键不放,输入0 和某个字符的Unicode 编码(十进制),再松开Alt 键即可得到该字符,如Alt + 033865会得到Unicode 字符叶。另外按Alt + X 组合键,MS Word 也会将光标前面的字符同其十六进制的四位Unicode 编码进行互相转换。

[1-2]新建文本也能输入、右键

编辑本段使用Unicode原因

基本上,计算机只是处理数字。它们指定一个数字,来储存字母或其他字符。在创造Unicode之前,有数百种指定这些数字的编码系统。没有一个编码可以包含足够的字符:例如,单单欧州共同体就需要好几种不同的编码来包括所有的语言。即使是单一种语言,例如英语,也没有哪一个编码可以适用于所有的字母,标点符号,和常用的技术符号。这些编码系统也会互相冲突。也就是说,两种编码可能使用相同的数字代表两个不同的字符,或使用不同的数字代表相同的字符。任何一台特定的计算机(特别是服务器)都需要支持许多不同的编码,但是,不论什么时候数据通过不同的编码或平台之间,那些数据总会有损坏的危险。

简单几句话总结Unicode,UTF-8和UTF-16

概念 先说一说基本的概念,这包括什么是Unicode,什么是UTF-8,什么是UTF-16。 Unicode,UTF-8,UTF-16完整的说明请参考Wiki(Unicode,UTF-8,UTF-16)。用比较简单的话来说就是,Unicode定义了所有可以用来表示字符的数值集合(称之为Code Point)。UTF-8和UTF-16等UTF标准定义了这些数值和字符的映射关系。 UTF-8 优势 UTF-8最大的优势是,没有字节序的概念。所以特别适合用于字符串的网络数据传输,不用考虑大小端问题。 劣势 本地字符串处理过程中,如果使用UTF-8,对于英文字符的处理没有太大的问题。一个char 变量表示一个英文字符。但是对于中文等远东字符集来说,就比较坑爹了。char str[]; str[0]并不能完整表示一个汉字。UTF-8编码格式下,一个汉字需要至少3个char才能表示。这对于通过下标来操作字符串的操作来说是非常痛苦的一件事情。 另外,一个汉字需要至少3个char来表示,也让汉字在网络传输上存在劣势,占用太多流量。 UTF-16 优势 UTF-16 LE是windows上默认的Unicode编码方式,使用wchar_t表示。所有wchar_t *类型的字符串(包括硬编码在.h/.cpp里的字符串字面值),VC都自动采用UTF-16的编码(字符串字面值,literal string,存在很多坑。特别是char *类型的字面值,最终内存使用何种编码方式完全取决于当前文件的编码方式。也就是说当前文件如果是GBK编码的,那么文件里char * str = "中午",str指向的内存字符串二进制是使用GBK编码的。如果文件编码是UTF-8,那么内存是使用UTF-8编码。所以为什么一直要强调字符串应该放在资源文件里,而不是硬编码在.h/.cpp文件里!)。 UTF-16另外一个优势就是常用字符都可以使用两个个字节表示,也就是一个wchar_t(这里指Windows平台)。所以,在Windows平台上,特别适合使用wchar_t来作为字符串的存储基类型。一个wchar_t表示一个字符。操作使用非常方便。 劣势 没有统一的表示UTF-16编码的字符类型。C++98/03里对wchar_t的定义是非常宽泛的。这导致在Windows平台上,wchar_t是2字节的;在Unix-like系统上是4字节的。代码移植上,可能会遇到挑战(我没移植过,所以不确定会有什么难度,以及难度有多大)。 即使最新的C++11里已经定义除了char16_t表示UTF-16,MS的VS2013还不支持char16_t。所以目前使用char16_t还不具移植性。 据我了解,UTF-16编码和GBK编码相比,还存在一个排序的劣势。也就是说,如果要按照

Unicode汉字编码表

Unicode汉字编码表 1 unicode编码表 Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字"经"的编码是0x7ECF,注意字符编码一般用十六进制来表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。 编码从0到127的字符与ASCII编码的字符一样,比如字母"a"的Unicode 编码是0x0061,十进制是97,而"a"的ASCII编码是0x61,十进制也是97, 对于汉字的编码,事实上Unicode 对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用4个字节来编码字符,不过现在普遍采用的还是UCS-2,只用两个字节来编码,看一下Unicode对汉字的编码: ------------------------------------------------------------------------ 2 汉字编码表 U+ 0 1 2 3 4 5 6 7 8 9 A B C D E F ----------------------------------------------------- 4e00 一丁丂七丄丅丆万丈三上下丌不与丏 4e10 丐丑丒专且丕世丗丘丙业丛东丝丞丟 4e20 丠両丢丣两严並丧丨丩个丫丬中丮丯

ANSI与UNICODE字符函数对照表

宽字符处理函数函数与普通函数对照表 字符分类:宽字符函数普通C函数描述 iswalnum()isalnum()测试字符是否为数字或字母 iswalpha()isalpha()测试字符是否是字母 iswcntrl()iscntrl()测试字符是否是控制符 iswdigit()isdigit()测试字符是否为数字 iswgraph()isgraph()测试字符是否是可见字符 iswlower()islower()测试字符是否是小写字符 iswprint()isprint()测试字符是否是可打印字符 iswpunct()ispunct()测试字符是否是标点符号 iswspace()isspace()测试字符是否是空白符号 iswupper()isupper()测试字符是否是大写字符 iswxdigit()isxdigit()测试字符是否是十六进制的数字 大小写转换: 宽字符函数普通C函数描述 towlower()tolower()把字符转换为小写 towupper()toupper()把字符转换为大写 字符比较:宽字符函数普通C函数描述 wcscoll()strcoll()比较字符串 日期和时间转换: 宽字符函数描述 strftime()根据指定的字符串格式和locale设置格式化日期和时间 wcsftime()根据指定的字符串格式和locale设置格式化日期和时间,并返回宽字符串strptime()根据指定格式把字符串转换为时间值,是strftime的反过程 打印和扫描字符串: 宽字符函数描述 fprintf()/fwprintf()使用vararg参量的格式化输出 fscanf()/fwscanf()格式化读入 printf()使用vararg参量的格式化输出到标准输出 scanf()从标准输入的格式化读入 sprintf()/swprintf()根据vararg参量表格式化成字符串 sscanf()以字符串作格式化读入 vfprintf()/vfwprintf()使用stdarg参量表格式化输出到文件 vprintf()使用stdarg参量表格式化输出到标准输出 vsprintf()/vswprintf()格式化stdarg参量表并写到字符串

常用字符集编码详解:ASCII 、GB2312、GBK、GB18030、...

ASCII ASCII码是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x20和0x7F共33个控制字符。 只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。早期很多邮件系统也只支持ASCII编码,为了传输中文邮件必须使用BASE64或者其他编码方式。 GB2312 GB2312是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。区位码一般用10进制数来表示,如1601就表示16区1位,对应的字符是“啊”。在区位码的区号和位号上分别加上0xA0就得到了GB2312编码。 区位码中01-09区是符号、数字区,16-87区是汉字区,10-15和88-94是未定义的空白区。它将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。一级汉字是按照拼音排序的,这个就可以得到某个拼音在一级汉字区位中的范围,很多根据汉字可以得到拼音的程序就是根据这个原理编写的。 GB2312字符集中除常用简体汉字字符外还包括希腊字母、日文平假名及片假名字母、俄语西里尔字母等字符,未收录繁体中文汉字和一些生僻字。可以用繁体汉字测试某些系统是不是只支持GB2312编码。 GB2312的编码范围是0xA1A1-0x7E7E,去掉未定义的区域之后可以理解为实际编码范围是0xA1A1-0xF7FE。 EUC-CN可以理解为GB2312的别名,和GB2312完全相同。 区位码更应该认为是字符集的定义,定义了所收录的字符和字符位置,而GB2312及EUC-CN是实际计算机环境中支持这种字符集的编码。HZ和ISO- 2022-CN是对应区位码字符集的另外两种编码,都是用7位编码空间来支持汉字。区位码和GB2312编码的关系有点像Unicode和UTF-8。 GBK GBK编码是GB2312编码的超集,向下完全兼容GB2312,同时GBK收录了Unicode基本多文种平面中的所有CJK汉字。同GB2312一样,GBK也支持希腊字母、日文假名字母、俄语字母等字符,但不支持韩语中的表音字符(非汉字字符)。GBK还收录了GB2312不包含的汉字部首符号、竖排标点符号等字符。 GBK的整体编码范围是为0x8140-0xFEFE,不包括低字节是0×7F的组合。高字节范围是0×81-0xFE,低字节范围是0x40-7E和0x80-0xFE。

UNICODE字符集中特有汉字的输入方法

例说UNICODE字符集中特有汉字的输入方法 有个字读音“xi”字型为上“亩”下“心”,遇到手写不了的证件,只能用拼音代替,或者打成其他的字再到单位开证明,有时要跑好几趟才能办成诸如存取款、买保险、购机票等事情。下面结合这个“上‘亩’下‘心’”的汉字为例,谈谈UNICODE字符集中特有汉字的输入方法: 1.这个汉字属于超大字符集《CJK统一汉字扩充B》,Unicode字符代码是20164。 2.为了顺利处理UNICODE汉字中特有汉字,在Windows XP操作系统中需安装“配套超大字集支持包”(https://www.wendangku.net/doc/515085480.html,/software/UniFonts.exe,目前版本是6.0版),不过安装支持包时选择“完全安装”的话会影响到一极少部分软件的使用(例如会引起“企业电子报税管理系统”的申报主界面出现重复图形按钮及字体变大的现象,影响正常显示和使用,又如会引起中国电信“天翼宽带客户端V1.1.5”拨号软件在拨号过程中显示的字体变小,经测试,多个版本都有这个问题,但在卸载这个“超大字集支持包”并重启后,可以恢复正常,如果安装时不选择“自动链接系统外文显示字体”也不会出现这些异常),因此建议选择“核心安装”或在选择“自定义安装”后不选择“自动链接系统外文显示字体”。另外在Windows 2000中系统还需要首先安装补丁(surreg.exe)方可使用超大字符集。 3.Windows Viata和Windows 7中都支持UNICODE汉字(包括CJK、CJK-ExtA、CJK-ExtB),用海峰五笔(目前最新版本为9.5,官方下载地址:1. https://www.wendangku.net/doc/515085480.html,/software/SunWb.exe)可以直接打出来,86版和98版的五笔编码都是ylnu,还有一些五笔输入法,例如菩提五笔、新概念五笔输入法等都能完成UNICODE汉字的输入,在word、Excel等中输入后,会自动调用“宋体-方正超大字符集”显示。 4.使用郑码输入法 5.0版或 6.0版也可以免费输入:windows xp和windows7中均内置了郑码输入法(xp为5.0版、windows7为6.0版),可以替换码表为“全汉字集郑码码表”(本郑码码表包含CJK、CJK-A、CJK-B、CJK-C、CJK-D 全汉字集单字、以及简体、繁体词组,附目前可用下载地址:https://www.wendangku.net/doc/515085480.html,/)或者“超大字集郑码【官方大字集郑码】+扩展B,70296个字35000条(windows7下使用,附目前可用下载地址:https://www.wendangku.net/doc/515085480.html,/)”(xp的码表是winzm.MB,window 7的码表是TableTextServiceSimplifiedZhengMa.txt)然后轻松输入。这个“上‘亩’下‘心’” 的汉字“”的郑码是skwz,具体资源如果不可下载时请通过搜索得到。 5.在系统已支持UNICODE字符集时,不使用输入法,也可以直接在文档中插 入Unicode字符代码,例20164就是“”的Unicode字符代码,可以将代码20164 输入文档,然后按Alt+X将其转换成字符。 6.操作系统支持的字符集正在一步步地扩大,当年只支持GB-2312,现在已广泛支持GBK了,而且Windows Viata和Windows 7都开始支持UNICODE汉字(包括CJK、CJK-ExtA、CJK-ExtB)了。能全面输入、显示或者说广泛支持UNICODE汉字,只是迟早的事。 7.目前,要让更多的人也能顺利打出此字,需要大家一起努力。要让人家会处理你要的汉字,必要时要能说服人家,安装一些你早已准备好的软件等。

unicode中的中文编码说明

编码表 平面0 (0000–FFFF): 基本多文种平面(Basic Multilingual Plane, BMP). 平面1 (10000–1FFFF): 多文种补充平面(Supplementary Multilingual Plane, SMP). 平面2 (20000–2FFFF): 表意文字补充平面(Supplementary Ideographic Plane, SIP). 平面3 (30000–3FFFF): 表意文字第三平面(Tertiary Ideographic Plane, TIP). 平面4 to 13 (40000–DFFFF)尚未使用 平面14 (E0000–EFFFF): 特别用途补充平面(Supplementary Special-purpose Plane, SSP) 平面15 (F0000–FFFFF)保留作为私人使用区(Private Use Area, PUA) 平面16 (100000–10FFFF),保留作为私人使用区(Private Use Area, PUA) 注意1 现在网上大多数用于判断中文字符的是U+4E00..U+9FA5这个范围是只是“中日韩统一表意文字”这个区间,但这不是全部,如果要全部包含,则还要他们的扩展集、部首、象形字、注间字母等等; 2E80-A4CF加上F900-FAFF加上FE30-FE4F。 其中: 2E80-A4CF 包含了中日朝部首补充、康熙部首、表意文字描述符、中日朝符号和标点、日文平假名、日文片假名、注音字母、谚文兼容字母、象形字注释标志、注音字母扩展、中日朝笔画、日文片假名语音扩展、带圈中日朝字母和月份、中日朝兼容、中日朝统一表意文字扩展A、易经六十四卦符号、中日韩统一表意文字、彝文音节、彝文字根 F900-FAFF 中日朝兼容表意文字 FE30-FE4F 中日朝兼容形式 所以,一般用4E00-9FA5已经可以,如果要更广,则用2E80-A4CF || F900-FAFF||FE30-FE4F 注意2 全角ASCII、全角中英文标点、半宽片假名、半宽平假名、半宽韩文字母:FF00-FFEF

unicode编码区对照表

unicode編碼區對照表 2150-218F Number Forms 數字形式 2190-21FF Arrows 箭頭符號 2200-22FF Mathematical Operators 數學運算符號 2300-23FF Miscellaneous Technical 混合專門符號 3000-303F CJK Symbols and Punctuation 中日韓符號和標點3040-309F Hiragana 平假名 30A0-30FF Katakana 片假名 3100-312F Bopomofo 注音符號 31C0-31EF CJK Strokes 中日韓筆畫部件 31F0-31FF Katakana Phonetic Extensions 片假名音標擴充3200-32FF Enclosed CJK Letters and Months 中日韓括號字母及月份 3300-33FF CJK Compatibility 中日韓相容字元 3400-4DBF CJK Unified Ideographs Extension A 中日韓統一表意文字擴充A 4DC0-4DFF Yijing Hexagram Symbols 易經六十四卦象 4E00-9FFF CJK Unified Ideographs 中日韓統一表意文字 其他。。。。

0000-007F Basic Latin 基本拉丁字母 0080-00FF Latin-1 Supplement 拉丁字母補充-1 0100-017F Latin Extended-A 拉丁字母擴充-A 0180-024F Latin Extended-B 拉丁字母擴充-B 0250-02AF IPA Extensions 國際音標擴充 02B0-02FF Spacing Modifier Letters 進格修飾字元 0300-036F Combining Diacritical Marks 組合音標附加符號0370-03FF Greek and Coptic 希臘字母 0400-04FF Cyrillic 西里爾字母 0500-052F Cyrillic Supplement 西里爾字母補充 0530-058F Armenian 亞美尼亞文 0590-05FF Hebrew 希伯來文 0600-06FF Arabic 基本阿拉伯文 0700-074F Syriac 敘利亞文 0750-077F Arabic Supplement 阿拉伯文補充 0780-07BF Thaana 塔納文 07C0-07FF N'Ko 0900-097F Devanagari 天城體梵文字母 0980-09FF Bengali 孟加拉文 0A00-0A7F Gurmukhi 古爾穆基文 0A80-0AFF Gujarati 古吉拉特文 0B00-0B7F Oriya 奧里亞文

常用汉字的Unicode码表

包含汉字: 的一是了我不人在他有这个上们来到时大地为子中你说生国年着就那和要她出也得里后自以会家可下而过天去能对小多然于心学么之 都好看起发当没成只如事把还用第样道想作种开美总从无情己面最女但现前些所同日手又行意动方期它头经长儿回位分爱老因很给 名法间斯知世什两次使身者被高已亲其进此话常与活正感见明问力理尔点文几定本公特做外孩相西果走将月十实向声车全信重 三机工物气每并别真打太新比才便夫再书部水像眼等体却加电主界门利海受听表德少克代员许稜先口由死安写性马光白或住难 望教命花结乐色更拉东神记处让母父应直字场平报友关放至张认接告入笑内英军候民岁往何度山觉路带万男边风解叫任金快原 吃妈变通师立象数四失满战远格士音轻目条呢病始达深完今提求清王化空业思切怎非找片罗钱紶吗语元喜曾离飞科言干流欢约 各即指合反题必该论交终林请医晚制球决窢传画保读运及则房早院量苦火布品近坐产答星精视五连司巴奇管类未朋且婚台夜青 北队久乎越观落尽形影红爸百令周吧识步希亚术留市半热送兴造谈容极随演收首根讲整式取照办强石古华諣拿计您装似足双妻 尼转诉米称丽客南领节衣站黑刻统断福城故历惊脸选包紧争另建维绝树系伤示愿持千史谁准联妇纪基买志静阿诗独复痛消社算 义竟确酒需单治卡幸兰念举仅钟怕共毛句息功官待究跟穿室易游程号居考突皮哪费倒价图具刚脑永歌响商礼细专黄块脚味灵改 据般破引食仍存众注笔甚某沉血备习校默务土微娘须试怀料调广蜖苏显赛查密议底列富梦错座参八除跑亮假印设线温虽掉京初 养香停际致阳纸李纳验助激够严证帝饭忘趣支春集丈木研班普导顿睡展跳获艺六波察群皇段急庭创区奥器谢弟店否害草排背止 组州朝封睛板角况曲馆育忙质河续哥呼若推境遇雨标姐充围案伦护冷警贝著雪索剧啊船险烟依斗值帮汉慢佛肯闻唱沙局伯族低 玩资屋击速顾泪洲团圣旁堂兵七露园牛哭旅街劳型烈姑陈莫鱼异抱宝权鲁简态级票怪寻杀律胜份汽右洋范床舞秘午登楼贵吸责 例追较职属渐左录丝牙党继托赶章智冲叶胡吉卖坚喝肉遗救修松临藏担戏善卫药悲敢靠伊村戴词森耳差短祖云规窗散迷油旧适 乡架恩投弹铁博雷府压超负勒杂醒洗采毫嘴毕九冰既状乱景席珍童顶派素脱农疑练野按犯拍征坏骨余承置臓彩灯巨琴免环姆暗 换技翻束增忍餐洛塞缺忆判欧层付阵玛批岛项狗休懂武革良恶恋委拥娜妙探呀营退摇弄桌熟诺宣银势奖宫忽套康供优课鸟喊降 夏困刘罪亡鞋健模败伴守挥鲜财孤枪禁恐伙杰迹妹藸遍盖副坦牌江顺秋萨菜划授归浪听凡预奶雄升碃编典袋莱含盛济蒙棋端腿 招释介烧误 unicode 编码 的一是了我不人在他有这%u4e2a上们来

Unicode码

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。 Unicode 是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式(The Unicode Standard,目前第五版由Addison-Wesley Professional出版,ISBN-10: 0321480910)对外发表。 2006年6月的最新版本的 Unicode 是 2005年3月31日推出的Unicode 4.1.0 。另外,5.0 Beta已于2005年12月12日推出,以供各会员评价。 大概来说,Unicode 编码系统可分为编码方式和实现方式两个层次。 1.编码方式 Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。 Unicode字符集可以简写为UCS(Unicode Character Set)。早期的Unicode 标准有UCS-2、UCS-4的说法。UCS-2用两个字节编码,UCS-4用4个字节编码。UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个平面(plane)。每个平面根据第3个字节分为256行(row),每行有256个码位(cell)。group 0的平面0被称作BMP(Basic Multilingual Plane)。将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。 每个平面有2^16=65536个码位。Unicode计划使用了17个平面,一共有17*65536=1114112个码位。在Unicode 5.0.0版本中,已定义的码位只有238605

Java中编码以及Unicode总结

Java中编码以及Unicode总结 1.基本概念 ●bit 位只能是0或者1 ●byte 字节一个字节是8位,1 byte=8 bits 计算机表示的基本单位 ●KB,MB,GB,TB,PB是以1024与byte进行换算 ●进制用符号进行计数十进制、二进制、八进制(011)、十六进制(0xFF) 字符文字和符号的总称 ●字符集多个字符集合的总称。ASCII字符集、GB2312字符集、GBK字符集、BIG5 字符集、GB18003字符集、Unicode字符集 ●byte可表示2^8=256个字符的表示 0 0×00 0000,0000 1 0×01 0000,0001 2 0×01 0000,0010 127 0×7F 0111,1111 -128 0×80 1000,0000 -2 0xFE 1111,1110 -1 0xFF 1111,1111 ●以补码的形式表示的二进制编码。 -2的表示,2=0000,0010,反码1111,1101,补码=反码+1= 1111,1110表示的就是1111,1110-1=1111,1101,取反就是0000,0010也就是2,所以 就是-2 2.字符集和编码 2.1.字符(Character) 字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。 2.2.字符集(Character Set) 一组抽象字符的集合就是字符集(Character Set)。字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。字符集的子集也是字符集。 计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码。每种编码都限定了一个明确的字符集合,叫做被编码过的字符集(Coded Character Set),这是字符集的另外一个含义。通常所说的字符集大多都是指编码字符集(Coded Character Set)。

常用汉字的Unicode码表精修订

常用汉字的U n i c o d e 码表 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

包含汉字: 的一是了我不人在他有这个上们来到时大地为子中你说生国年着就那和要她出也得里后自以会家可下而过天去能对小多然于心学么之 都好看起发当没成只如事把还用第样道想作种开美总从无情己面最女但现前些所同日手又行意动方期它头经长儿回位分爱老因很给 名法间斯知世什两次使身者被高已亲其进此话常与活正感见明问力理尔点文几定本公特做外孩相西果走将月十实向声车全信重 三机工物气每并别真打太新比才便夫再书部水像眼等体却加电主界门利海受听表德少克代员许棱先口由死安写性马光白或住难 望教命花结乐色更拉东神记处让母父应直字场平报友关放至张认接告入笑内英军候民岁往何度山觉路带万男边风解叫任金快原 吃妈变通师立象数四失满战远格士音轻目条呢病始达深完今提求清王化空业思切怎非找片罗钱紶吗语元喜曾离飞科言干流欢约 各即指合反题必该论交终林请医晚制球决窢传画保读运及则房早院量苦火布品近坐产答星精视五连司巴奇管类未朋且婚台夜青 北队久乎越观落尽形影红爸百令周吧识步希亚术留市半热送兴造谈容极随演收首根讲整式取照办强石古华諣拿计您装似足双妻 尼转诉米称丽客南领节衣站黑刻统断福城故历惊脸选包紧争另建维绝树系伤示愿持千史谁准联妇纪基买志静阿诗独复痛消社算 义竟确酒需单治卡幸兰念举仅钟怕共毛句息功官待究跟穿室易游程号居考突皮哪费倒价图具刚脑永歌响商礼细专黄块脚味灵改

据般破引食仍存众注笔甚某沉血备习校默务土微娘须试怀料调广蜖苏显赛查密议底列富梦错座参八除跑亮假印设线温虽掉京初 养香停际致阳纸李纳验助激够严证帝饭忘趣支春集丈木研班普导顿睡展跳获艺六波察群皇段急庭创区奥器谢弟店否害草排背止 组州朝封睛板角况曲馆育忙质河续哥呼若推境遇雨标姐充围案伦护冷警贝着雪索剧啊船险烟依斗值帮汉慢佛肯闻唱沙局伯族低 玩资屋击速顾泪洲团圣旁堂兵七露园牛哭旅街劳型烈姑陈莫鱼异抱宝权鲁简态级票怪寻杀律胜份汽右洋范床舞秘午登楼贵吸责 例追较职属渐左录丝牙党继托赶章智冲叶胡吉卖坚喝肉遗救修松临藏担戏善卫药悲敢靠伊村戴词森耳差短祖云规窗散迷油旧适 乡架恩投弹铁博雷府压超负勒杂醒洗采毫嘴毕九冰既状乱景席珍童顶派素脱农疑练野按犯拍征坏骨余承置臓彩灯巨琴免环姆暗 换技翻束增忍餐洛塞缺忆判欧层付阵玛批岛项狗休懂武革良恶恋委拥娜妙探呀营退摇弄桌熟诺宣银势奖宫忽套康供优课鸟喊降 夏困刘罪亡鞋健模败伴守挥鲜财孤枪禁恐伙杰迹妹藸遍盖副坦牌江顺秋萨菜划授归浪听凡预奶雄升碃编典袋莱含盛济蒙棋端腿 招释介烧误 unicode 编码 \u7684\u4e00\u662f\u4e86\u6211\u4e0d\u4eba\u5728\u4ed6\u6709\u8fd9\u4e2a\u4e 0a\u4eec\u6765 \u5230\u65f6\u5927\u5730\u4e3a\u5b50\u4e2d\u4f60\u8bf4\u751f\u56fd\u5e74\u77 40\u5c31\u90a3 \u548c\u8981\u5979\u51fa\u4e5f\u5f97\u91cc\u540e\u81ea\u4ee5\u4f1a\u5bb6\u53 ef\u4e0b\u800c

Unicode汉字编码表

Unicode汉字编码表 1 Unicode编码表 Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字"经"的编码是0x7ECF,注意字符编码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制 就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。 编码从0到127的字符与ASCII编码的字符一样,比如字母"a"的Unicode 编码是0x0061,十进制是97,而"a"的ASCII编码是0x61,十进制也是97, 对于汉字的编码,事实上Unicode对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万 多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字 也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用 4个字节来编码字符,不过现在普遍采用的还是UCS-2,只用两个字节来 编码,看一下Unicode对汉字的编码:

------------------------------------------------------------------------ 2 汉字编码表 U+ 0 1 2 3 4 5 6 7 8 9 A B C D E F ----------------------------------------------------- 4e00 一丁丂七丄丅丆万丈三上下丌不与丏 4e10 丐丑丒专且丕世丗丘丙业丛东丝丞丟 4e20 丠両丢丣两严並丧丨丩个丫丬中丮丯 4e30 丰丱串丳临丵丶丷丸丹为主丼丽举丿 4e40 乀乁乂乃乄久乆乇么义乊之乌乍乎乏 4e50 乐乑乒乓乔乕乖乗乘乙乚乛乜九乞也 4e60 习乡乢乣乤乥书乧乨乩乪乫乬乭乮乯 4e70 买乱乲乳乴乵乶乷乸乹乺乻乼乽乾乿 4e80 亀亁亂亃亄亅了亇予争亊事二亍于亏 4e90 亐云互亓五井亖亗亘亙亚些亜亝亞亟 4ea0 亠亡亢亣交亥亦产亨亩亪享京亭亮亯 4eb0 亰亱亲亳亴亵亶亷亸亹人亻亼亽亾亿 4ec0 什仁仂仃仄仅仆仇仈仉今介仌仍从仏 4ed0 仐仑仒仓仔仕他仗付仙仚仛仜仝仞仟 4ee0 仠仡仢代令以仦仧仨仩仪仫们仭仮仯 4ef0 仰仱仲仳仴仵件价仸仹仺任仼份仾仿 4f00 伀企伂伃伄伅伆伇伈伉伊伋伌伍伎伏 4f10 伐休伒伓伔伕伖众优伙会伛伜伝伞伟 4f20 传伡伢伣伤伥伦伧伨伩伪伫伬伭伮伯

Unicode字符编码分布表――标点符号类

Unicode 5.1字符编码分布表——标点符号类标点符号数学符号专用符号 通用标点符号数字和数字符号综合符号控制符集合: C0(U+00–U+001F,U+007F)、C1(U+0080–U+009F)ASCII标点符号(U+0020 –U+002F,U+003A– U+0040,U+005B–(相关查阅: 专用文字) U+0060,U+007B– U+007E)xx盲文(U+2800 排版控制符(U+2000–U+206F)–U+28FF) 拉丁文第一增补集标点符 装饰符号(U+2700 - 号(U+00A0–ASCII数字(U+0030–U+0039)不可见操作符(U+2061–U+2064)U+27BF) U+00BF) 通用标点符号(U+2000全角ASCII数字(U+FF11– –U+206F)U+FF19) 增补标点符号(U+2E00数字形式符号(U+2150– –U+2E7F)U+218F)综合符号(U+2600– 专用符号(U+FFF0–U+FF)U+26FF)

综合符号和箭头 (U+2B00– U+2BFF) 《xx经》符号 (U+1D300– U+1D35F)语言标签(U+E00–U+E007F)中日韩标点符号上标和下标符号(U+2070– U+209F)变体选择符(U+FE00–U+FE0F)中日韩标点符号 类字母符号 (U+3000–U+303F)《易经》两仪四象 (U+268A– U+268F) 增补变体选择符(U+E0100–U+E01EF) 【译注】《xx》八卦 (U+2630– U+2637) 《xx》六十四卦象 (U+4DC0– U+4DFF) 全角ASCII标点符号 (U+FF01–U+FF0F,

常用汉字Unicode码表

\u7684\u4e00\u662f\u4e86\u6211\u4e0d\u4eba\u5728\u4ed6\u6709\u8fd9\u4e2a\u4e0a\u4 eec\u6765\u5230\u65f6\u5927\u5730\u4e3a\u5b50\u4e2d\u4f60\u8bf4\u751f\u56fd\u5e74\u 7740\u5c31\u90a3\u548c\u8981\u5979\u51fa\u4e5f\u5f97\u91cc\u540e\u81ea\u4ee5\u4f1a\ u5bb6\u53ef\u4e0b\u800c\u8fc7\u5929\u53bb\u80fd\u5bf9\u5c0f\u591a\u7136\u4e8e\u5fc3 \u5b66\u4e48\u4e4b\u90fd\u597d\u770b\u8d77\u53d1\u5f53\u6ca1\u6210\u53ea\u5982\u4 e8b\u628a\u8fd8\u7528\u7b2c\u6837\u9053\u60f3\u4f5c\u79cd\u5f00\u7f8e\u603b\u4ece\u 65e0\u60c5\u5df1\u9762\u6700\u5973\u4f46\u73b0\u524d\u4e9b\u6240\u540c\u65e5\u624 b\u53c8\u884c\u610f\u52a8\u65b9\u671f\u5b83\u5934\u7ecf\u957f\u513f\u56de\u4f4d\u52 06\u7231\u8001\u56e0\u5f88\u7ed9\u540d\u6cd5\u95f4\u65af\u77e5\u4e16\u4ec0\u4e24\u 6b21\u4f7f\u8eab\u8005\u88ab\u9ad8\u5df2\u4eb2\u5176\u8fdb\u6b64\u8bdd\u5e38\u4e0e \u6d3b\u6b63\u611f\u89c1\u660e\u95ee\u529b\u7406\u5c14\u70b9\u6587\u51e0\u5b9a\u6 72c\u516c\u7279\u505a\u5916\u5b69\u76f8\u897f\u679c\u8d70\u5c06\u6708\u5341\u5b9e\ u5411\u58f0\u8f66\u5168\u4fe1\u91cd\u4e09\u673a\u5de5\u7269\u6c14\u6bcf\u5e76\u522 b\u771f\u6253\u592a\u65b0\u6bd4\u624d\u4fbf\u592b\u518d\u4e66\u90e8\u6c34\u50cf\u7 73c\u7b49\u4f53\u5374\u52a0\u7535\u4e3b\u754c\u95e8\u5229\u6d77\u53d7\u542c\u8868 \u5fb7\u5c11\u514b\u4ee3\u5458\u8bb8\u7a1c\u5148\u53e3\u7531\u6b7b\u5b89\u5199\u6 027\u9a6c\u5149\u767d\u6216\u4f4f\u96be\u671b\u6559\u547d\u82b1\u7ed3\u4e50\u8272 \u66f4\u62c9\u4e1c\u795e\u8bb0\u5904\u8ba9\u6bcd\u7236\u5e94\u76f4\u5b57\u573a\u5e 73\u62a5\u53cb\u5173\u653e\u81f3\u5f20\u8ba4\u63a5\u544a\u5165\u7b11\u5185\u82f1\u 519b\u5019\u6c11\u5c81\u5f80\u4f55\u5ea6\u5c71\u89c9\u8def\u5e26\u4e07\u7537\u8fb9\ u98ce\u89e3\u53eb\u4efb\u91d1\u5feb\u539f\u5403\u5988\u53d8\u901a\u5e08\u7acb\u8c6 1\u6570\u56db\u5931\u6ee1\u6218\u8fdc\u683c\u58eb\u97f3\u8f7b\u76ee\u6761\u5462\u7 5c5\u59cb\u8fbe\u6df1\u5b8c\u4eca\u63d0\u6c42\u6e05\u738b\u5316\u7a7a\u4e1a\u601d\ u5207\u600e\u975e\u627e\u7247\u7f57\u94b1\u7d36\u5417\u8bed\u5143\u559c\u66fe\u79 bb\u98de\u79d1\u8a00\u5e72\u6d41\u6b22\u7ea6\u5404\u5373\u6307\u5408\u53cd\u9898 \u5fc5\u8be5\u8bba\u4ea4\u7ec8\u6797\u8bf7\u533b\u665a\u5236\u7403\u51b3\u7aa2\u4f 20\u753b\u4fdd\u8bfb\u8fd0\u53ca\u5219\u623f\u65e9\u9662\u91cf\u82e6\u706b\u5e03\u5 4c1\u8fd1\u5750\u4ea7\u7b54\u661f\u7cbe\u89c6\u4e94\u8fde\u53f8\u5df4\u5947\u7ba1\u 7c7b\u672a\u670b\u4e14\u5a5a\u53f0\u591c\u9752\u5317\u961f\u4e45\u4e4e\u8d8a\u89c2 \u843d\u5c3d\u5f62\u5f71\u7ea2\u7238\u767e\u4ee4\u5468\u5427\u8bc6\u6b65\u5e0c\u4e 9a\u672f\u7559\u5e02\u534a\u70ed\u9001\u5174\u9020\u8c08\u5bb9\u6781\u968f\u6f14\u 6536\u9996\u6839\u8bb2\u6574\u5f0f\u53d6\u7167\u529e\u5f3a\u77f3\u53e4\u534e\u8ae3 \u62ff\u8ba1\u60a8\u88c5\u4f3c\u8db3\u53cc\u59bb\u5c3c\u8f6c\u8bc9\u7c73\u79f0\u4e3d \u5ba2\u5357\u9886\u8282\u8863\u7ad9\u9ed1\u523b\u7edf\u65ad\u798f\u57ce\u6545\u5 386\u60ca\u8138\u9009\u5305\u7d27\u4e89\u53e6\u5efa\u7ef4\u7edd\u6811\u7cfb\u4f24\ u793a\u613f\u6301\u5343\u53f2\u8c01\u51c6\u8054\u5987\u7eaa\u57fa\u4e70\u5fd7\u975 9\u963f\u8bd7\u72ec\u590d\u75db\u6d88\u793e\u7b97\u4e49\u7adf\u786e\u9152\u9700\u 5355\u6cbb\u5361\u5e78\u5170\u5ff5\u4e3e\u4ec5\u949f\u6015\u5171\u6bdb\u53e5\u606f \u529f\u5b98\u5f85\u7a76\u8ddf\u7a7f\u5ba4\u6613\u6e38\u7a0b\u53f7\u5c45\u8003\u7a8 1\u76ae\u54ea\u8d39\u5012\u4ef7\u56fe\u5177\u521a\u8111\u6c38\u6b4c\u54cd\u5546\u7 93c\u7ec6\u4e13\u9ec4\u5757\u811a\u5473\u7075\u6539\u636e\u822c\u7834\u5f15\u98df\ u4ecd\u5b58\u4f17\u6ce8\u7b14\u751a\u67d0\u6c89\u8840\u5907\u4e60\u6821\u9ed8\u52 a1\u571f\u5fae\u5a18\u987b\u8bd5\u6000\u6599\u8c03\u5e7f\u8716\u82cf\u663e\u8d5b\u 67e5\u5bc6\u8bae\u5e95\u5217\u5bcc\u68a6\u9519\u5ea7\u53c2\u516b\u9664\u8dd1\u4ea

计算机常见编码

计算机常见编码 一.有关编码的基础知识 1. 位 bit 最小的单元 字节 byte 机器语言的单位 1byte=8bits 1KB=1024byte 1MB=1024KB 1GB=1024MB 2. 二进制 binary 八进制 octal 十进制 decimal 十六进制 hex 3. 字符:是各种文字和符号的总称,包括各个国家的文字,标点符号,图形符号,数字等。 字符集:字符集是多个符号的集合,每个字符集包含的字符个数不同。 字符编码:字符集只是规定了有哪些字符,而最终决定采用哪些字符,每一 个字符用多少字节表示等问题,则是由编码来决定的。计算机要 准确的处理各种字符集文字,需要进行字符编码,以便计算机能 够识别和存储各种文字。 二.常见字符集的编码介绍: 常见的字符集有:ASCII 字符集,GB2312 字符集,BIG5 字符集,GB18030 字符集,Unicode 字符集,下面一一介绍: 1. ASCII 字符集: 定义: 美国信息互换标准代码,是基于罗马字母表的一套电脑编码系统,主要显示 英语和一些西欧语言,是现今最通用的单字节编码系统。 包含内容: 控制字符(回车键,退格,换行键等) 可显示字符(英文大小写,阿拉伯数字,西文符号) 扩展字符集(表格符号,计算符号,希腊字母,拉丁符号) 编码方式: 第 0-31 号及 127 号是控制字符或通讯专用字符; 第 32-126 号是字符,其中 48-57 号为 0-9 十个阿拉伯数字,65-90 号为 26 个大写英文字母,97-122 号为 26 个英文小写字母,其余为一些标点符号,运 算符号等。 在计算机存储单元中,一个 ASCII 码值占一个字节(8 个二进制位),最高位 是用作奇偶检验位。【奇偶校验是指:在代码传送的过程中,用来检验是否 出错的一种方法。】奇偶校验分为奇校验和偶校验。奇校验规定:正确的代 码一个字节中 1 的个数必须是奇数,若非奇数,则在最高位添 1;偶校验规 定:正确的代码一个字节中 1 的个数必须是奇数,若非奇数,则在最高位添 1。

相关文档