字符编码详解.ppt
《字符编码详解.ppt》由会员分享,可在线阅读,更多相关《字符编码详解.ppt(24页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、字符编码基础Write by:ChenBing字符编码基础北京北科博研科技有限公司 20060808字符编码基础Write by:ChenBing编码规范 简介简介ASCII占用1个字节(8 bits);最大字符数 256;一般用128(最高位是0);高位为 1的为扩展ASCII.法文,德文等等一些其他的西欧字符的文字也可以使用该编码系统.相关的编码标准相关的编码标准:ISO 8859-1 ISO 8859-1 6ISO8859-15=BA MASCULINE ORDINAL INDICATOR=BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK=BC
2、LATIN CAPITAL LIGATURE OE=BD LATIN SMALL LIGATURE OE=BE LATIN CAPITAL LETTER Y WITH DIAERESISISO8859-1 俗称俗称 Latin-1=BA MASCULINE ORDINAL INDICATOR=BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK=BC FRACTION ONE QUARTER=BD FRACTION ONE HALF=BE FRACTION THREE QUARTERS字符编码基础Write by:ChenBing编码规范 简介简介GB23
3、12占用2个字节(8 bits)2个扩展ASCII字符 12 位编码位编码:在有些语言中会引起截位乱码现象在有些语言中会引起截位乱码现象两个字节的最高位都是1。但符合这个条件的码位只有128*128=16384个 高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE;一共收录了7445个字符实际6763常用简体汉字 682字符BIG5(台湾台湾 繁体繁体),HKSCS(香港香港)等等一些亚洲文字也使用 扩展扩展ASCII编码编码.如“中”“的GB2312编码分别是“D6 D0”和”A9 C1”字符串“中,“的编码是”D6 D0 A9 C1
4、 A1 C4 A3 AC“如果将A9改成79 得到的结果就完全变了”中y痢模口”那么”中1,”的编码是多少呢:”D6 D0 A9 C1 31 A3 AC”字符编码基础Write by:ChenBing编码规范 简介简介GBK 兼容兼容GB2312 2个扩展个扩展ASCII字符字符 Windows的缺省内码还是GBK 12 位编码增加了繁体 但和Big5不兼容理论容量27*28=32768;实际使用126*(117+133)3,1500 低位:040至至07E 和和 080至至0FE 字符编码基础Write by:ChenBing编码规范 简介简介GB18030 兼容兼容GBK 扩展扩展ASCI
5、I字符字符 单字节、双字节和四字节收录了中、日、韩 27484个汉字 理论容量 单字节:128 双字节:126*(117+133)3,1500 四字节:1260*1260=1,587,600 共计算 160W字符编码基础Write by:ChenBing编码规范 简介简介GB18030 单字节:使用000至07F码位(对应于ASCII码的相应码位)。双字节:首字节码位从081至0FE,尾字节码位分别是040至07E和080至0FE。四字节:采用采用GB/T 11383未采用的未采用的030到到039作为对双字节编码扩充的后缀作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为081308
6、130到0FE39FE39。其中第一、三个字节编码码位均为081至0FE,第二、四个字节编码码位均为030至039 单字节:128双字节:126*(117+133)3,1500四字节:1260*1260=1,587,600字符编码基础Write by:ChenBing编码规范 简介简介UNICODE 两套标准两套标准UCS-2(Unicode-16)2字节编码 216=65535基本上可以容纳所有的欧美字符和绝大部分的亚洲字符 UCS-4(Unicode-32)4字节编码 231=2147483648 在在Unicode里,所有的字符被一视同仁。汉字不再使用里,所有的字符被一视同仁。汉字不再使
7、用“两个扩展两个扩展ASCII”,而是使用,而是使用“1个个Unicode”,注意,现在的汉字是,注意,现在的汉字是“一个字符一个字符”了,了,于是,拆字、统计字数这些问题也就自然而然的解决了于是,拆字、统计字数这些问题也就自然而然的解决了“Universal Multiple-Octet Coded Character Set”,简称为UCS。UCS可以看作是Unicode Character Set的缩写“ASCII是用来表示英文字符的一种编码规范,每个ASCII字符占用1个字节(8bits)”在C等语言中截取限定字符长度会出现的问题字符编码基础Write by:ChenBing编码规范
8、简介简介UCS-2 UCS-4关系关系UCS-4根据最高位为根据最高位为0的最高字节分成的最高字节分成27=128个个group。每个。每个group再根据再根据次高字节分为次高字节分为256个个plane。每个。每个plane根据第根据第3个字节分为个字节分为256行行(rows),每,每行包含行包含256个个cells UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。在UCS-2的两个字节前加上两个零字节,就得到了UCS-4的BMP而目前的UCS-4规范中还没有任何字符被分配在BMP之外 group 0的plane 0被称作Basic Multilingual Plane,即BM
9、P。或者说UCS-4中,高两个字节为0的码位被称作BMP 字符编码基础Write by:ChenBing编码规范 简介简介UNICODE 带来的问题 和ASCII字符集之间的不兼容不兼容问题 如:“A”的ASCII是65。而Unicode是双字节的,比如“A”的Unicode是0065 C语言使用0作为字符串结尾,而Unicode里恰恰有很多字符都有一个字节为0 为此诞生的标准 UTF=UCS Transformation Format UCS转换格式转换格式 UTF-8使用比较多使用比较多定义了一种“区间规则区间规则”,这种规则可以和ASCII编码保持最大程度的兼容 UTF-16 UTF-1
10、6和上面提到的Unicode本身的编码规范是一致的 1.小于0 x10000的UCS码,UTF-16编码就等于UCS码对应的16位无符号整数2.不小于0 x10000的UCS码,定义了一个算法字符编码基础Write by:ChenBingUNICODE UTF8转换转换00000000-0000007F0 xxxxxxx 的字符,用单个字节来表示;跟ASCII编码一样 00000080-000007FF110 xxxxx 10 xxxxxx的字符,用两个字节表示 00000800-0000FFFF1110 xxxx 10 xxxxxx 10 xxxxxx的字符,用3个字节表示00010000-
11、001FFFFF11110 xxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 4个字节00200000-03FFFFFF 111110 xx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 5个字节04000000-7FFFFFFF 1111110 x 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 区间范围区间范围 转换规则转换规则“汉”字的Unicode编码是”6C 49”经过转换 UTF编码是“E6 B1 89”.GB编码是“BA BA”6C 49 0110 110001 001001
12、11100000 10000000 10000000E6 B1 89 11100110 10110001 10001001字符编码基础Write by:ChenBing编码规范 简介简介big endian和little endian endian翻译成“字节序”,将big endian和little endian称作“大尾”和“小尾”Byte Order Mark(BOM)Unicode规范中推荐的标记字节顺序的方法是BOM 如何表示字节序呢如何表示字节序呢!?1.UCS编码中有一个叫做“ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF.而FFFE在UCS中是不
13、存在的字符,所以不应该出现在实际传输中2.接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符ZERO WIDTH NO-BREAK SPACE又被称作BOM 3.字符ZERO WIDTH NO-BREAK SPACE的UTF-8编码是EF BB BF.接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了 字符编码基础Write by:ChenBing字符集字符集 介绍介绍名字名字描述描述语言语言字节字节/字符字符别名别名BIG5大五繁体中文1-2WIN950,Windows950EUC_CN扩
14、展的UNIX代码-CN简体中文1-3EUC_JP扩展的UNIX代码-JP日文1-3EUC_KR扩展的UNIX代码-KR韩文1-3EUC_TW扩展的UNIX代码-TW繁体中文,中国台湾省1-3GB18030国家标准国家标准中文中文1-2-4GBK扩展的国家标准扩展的国家标准简体中文简体中文1-2WIN936,Windows936ISO_8859_5ISO8859-5,ECMA113拉丁/西里尔语1ISO_8859_6ISO8859-6,ECMA114拉丁/阿拉伯语1ISO_8859_7ISO8859-7,ECMA118拉丁/希腊语1ISO_8859_8ISO8859-8,ECMA121拉丁/希伯
15、莱语1JOHABJOHAB韩语(Hangul)1-3KOI8KOI8-R(U)西里尔语1KOI8RLATIN1ISO8859-1,ECMA94西欧语西欧语1ISO88591LATIN2ISO8859-2,ECMA94中欧语1ISO88592LATIN3ISO8859-3,ECMA94南欧语1ISO88593LATIN4ISO8859-4,ECMA94北欧语1ISO88594LATIN5ISO8859-9,ECMA128土耳其语1ISO88599LATIN6ISO8859-10,ECMA144北欧,日耳曼语(Nordic)1ISO885910LATIN7ISO8859-13波罗的海语(Balti
16、c)1ISO885913LATIN8ISO8859-14凯尔特语(Celtic)1ISO885914字符编码基础Write by:ChenBing字符集字符集 介绍介绍名字名字描述描述语言语言字节字节/字符字符别名别名LATIN9ISO8859-15带有欧洲语系和语调的带有欧洲语系和语调的LATIN11ISO885915LATIN10ISO8859-16,ASROSR14111罗马尼亚语(Romanian)1ISO885916MULE_INTERNALMule国际编码多语种Emacs1-4SJISShiftJIS日语1-2Mskanji,ShiftJIS,WIN932,Windows932SQ
17、L_ASCII未声明(见文本)任意1UHC统一韩语(Hangul)编码韩语1-2WIN949,Windows949UTF8Unicode,8-bit全部全部1-4-6UnicodeWIN866WindowsCP866西里尔语1ALTWIN874WindowsCP874泰国语1WIN1250WindowsCP1250中欧语1WIN1251WindowsCP1251西里尔语1WINWIN1252WindowsCP1252西欧语1WIN1256WindowsCP1256阿拉伯语1WIN1258WindowsCP1258越南语1ABC,TCVN,TCVN5712,VSCII字符编码基础Write by
18、:ChenBingJava 中字符转码的问题Java的内码是UnicodeString代表一个Unicode字符串String构造时会经过转换程序将输入的字符串转换成Unicode字符串存在一个char(无符号16位)数组中 String(“.”)-JVM按默认字符集(一般为操作系统默认的)将“.”转换成Unicode。String(byte bytes,String charsetName)-JVM按charsetName指定的字符集对数组byte进行转换,byte内数据应该是和内数据应该是和charsetName指定的字符集对应的指定的字符集对应的,否则不会有正确的转换 由于String中
19、都是Unicode,所以在显示或输出时系统会进行另一次相反过程相反过程的转换.getBytes(String charsetName)-String通过转换器将内部的Unicode转换为charsetName指定字符集中的对应,并以byte数组形式存在。new String(byte bytes,String charsetName)-charsetName对应的字符串以byte数组形式存在,转换器通过charsetName找到指定 转换程序,将bytes数组转换为Unicode。字符编码基础Write by:ChenBingJava 中字符转码的问题java.nio.charset.Char
20、setDecoder-负责特定字符集到Unicode的转换(byte数组到byte数组)。java.nio.charset.CharsetEncoder-负责Unicode到特定字符集的转换(byte数组到byte数组)。只存在特定字符集到Unicode的转换,特定字符集之间转换要经过Unicode。对不同的字符集转换器会选择不同的转换程序,转换程序由每个特定字符集提供,Unicode不提供其他字符集转换成它或由它转换成其他字符集的程序。在String中已封装了CharsetDecoder和CharsetEncoder的功能,对应new String(byte bytes,String cha
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符 编码 详解
限制150内