为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 关于字符集与字符编码.doc

关于字符集与字符编码.doc

2018-04-10 14页 doc 33KB 21阅读

用户头像

is_153723

暂无简介

举报
关于字符集与字符编码.doc关于字符集与字符编码.doc 1.字符的存储 在算机中存的信息皆数字,二制数,,且都以字,储储储储储储储储储储储储储储储储储储储储储储储储储储8位二制数,储储储储储最小位,如何算机存一个字符呢,方式是制定一储储储储储储储储储储储储储储储储储储储储储储储 个字符表,将数字与字符一一,在算机中存数字,示的字符。储储储储储储储储储储储储储储储储储储储储储储储储储 2.字符集 储储储储储储储储储储储储储储储储储储储储储储储储储储储了上面描述的字符存方式,字符集生了。字符集定 了它包含哪些字符以及个字符什数字。每储储储储储储储 在美境...
关于字符集与字符编码.doc
关于字符集与字符编码.doc 1.字符的存储 在算机中存的信息皆数字,二制数,,且都以字,储储储储储储储储储储储储储储储储储储储储储储储储储储8位二制数,储储储储储最小位,如何算机存一个字符呢,方式是制定一储储储储储储储储储储储储储储储储储储储储储储储 个字符,将数字与字符一一,在算机中存数字,示的字符。储储储储储储储储储储储储储储储储储储储储储储储储储 2.字符集 储储储储储储储储储储储储储储储储储储储储储储储储储储储了上面描述的字符存方式,字符集生了。字符集定 了它包含哪些字符以及个字符什数字。每储储储储储储储 在美境中,使用到的字符,包括字母和符号,非常少,起初制定的字符集是储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储ASCII,American Standard Code for Information Interchange,,共收了储储128个字符,使用了7位二制数,不一个字,因此储储储储储储储储储储储储储储ASCII储储储储储储储境下可以用一个字存一个字符,方式十分的。储储储储储储储储储储 在美中含有一些西欧字符,些字符并没有出在储储储储储储储储储储储储储储储储储储储储储ASCII中,因此EASCII,Extended ASCII,出了,它展了储储储储储储储ASCII,加入了一些西欧字母和符号,共收入了256个字符,好用了一个字。储储储储储储储储储储 西欧人同制定了自己的字符集,他在储储储储储储储储储储储储储储ASCII的基之上,附加了一储储储储储储储储些字符供拉丁字母言使用,同收入了储储储储储储储储储储256个字符,未超一个字,就是储储储储储储储储储ISO8859-1,ISO/IEC 8859-1:1998,又称Latin-1,,个字符集适用于欧洲多数国家。储储储储储储储储储储储储储储储 3.储储方式 储储储储储储储储方式是指表示字符的数字以什方式存。 在上述字符集境下,可以用一个字存一个字符,字储储储储储储储储储储储储储储储储储储储储 已是算机存的最小位,既足需求又无需化,表储储储储储储储储储储储储储储储储储储储储储储储储储 示字符的数字无需任何理直接存至算机中。储储储储储储储储储储储储 在中文境中,得了,中文字体加繁体大概有储储储储储储储储储储储储储储储储储储储储储储储储 六、七万之多,然使用一个字无法存一个中文字,储储储储储储储储储储储储储储储储储储储 于是就不得不使用多字。储储GB2312是使用比广泛的一个中文字符集,储储储储储储储储储储储它包括了六千多个常用字和六百多个非中文字符,使用储储储储储储储储储储储储储储储94乘94的方制所有字储储储储储储符,用区位表示一个字符,存方面,使用了储储储储储储储储储储储储储储储储EUC-CN储储储储储储储储方式,通一定的将区位两个字的数字存,情可参储储储储储储储储储储储储储储储储储储储GB2312与EUC-CN。 随着算机在越来越多的域用,储储储储储储储储储储储储储储GB2312已无法足需求,于是出了储储储储储储储储储储储储储GBK与GB18030。 GBK,Guo Biao Kuozhan,是GB2312的展,它包含了储储储储储储储883个符号,21003个字储储以及提供了1894个造字位。储储储GBK既是字符集也定了方式,储储储储储储储储GBK的整体范储储储储是0x8140-0xFEFE,不包括低字是储储0x7F的合,高字范是储储储储储储储储储0x81-0xFE,低字范储储储是0x40-0x7E和0x80-0xFE。低字是储储0x40-0x7E的GBK字符有一定特殊性,因些储储储字符占用了ASCII储储储储储储储储储储储储储储的位置,会一些系来麻。 国家准储储GB18030-2000《信息交用字字符集基本集的充》是我国储储储储储储储储储储储储储储储储储储储储GB2312-1980和GB13000-1993之后最重要的字准,包括中国少数储储储储储储储储储储储储储民族字符,是我国算机系必遵循的基性准之一。储储储储储储储储储储储储储储储储储储GB18030兼容GB2312,GB18030-2000收了储储27533个字,储储储GB18030-2005收了储储70244个字。储储GB18030的空超储储储储储储储150万个位。储储储GB18030同也是一方式,储储储储储储储储储储GB18030储储是,有字、双字和四字三方式。储储储储储储储储储储储储储储储储储储储储储储GB18030的字范是储储储储储储储储0x00-0x7F,完全等同与ASCII,双字的范和储储储储储储储GBK相同,高字是储储0x81-0xFE,低字储的范是储储储储储0x40-0x7E和0x80-FE,四字中第一、三字的范是储储储储储储储储储储储储储储储储0x81-0xFE,二、四字是储储0x30-0x39。 第1储 共10储 4.字符交储 由于字符集的多性,在一字符集中存的信息交到另储储储储储储储储储储储储储储储储储储储 一字符集中展示会出字符的乱和失,某个数字储储储储储储储储储储储储储储储储储储储储储储储储 在不同的字符集中代表不同的字符或某个字符集中数字不在另一个字符集的涵盖范储内,,在互网高速展的期是十分尬的,于是出了储储储储储储储储储储储储储储储储储储储储储储储储 各方式来解决字符交的。储储储储储储储储储储储储储储 Windows平台提出了代的解决方式,将不同的字符集映储储储储储储储储储储储储储储储储 射到不同的代上,根据本地的区域置确定自己的代,储储储储储储储储储储储储储储储储储储储储储储 字符交,声明自己的代,展示根据代解析字符。常的代:储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储1258-越南储、1257-波的、储储储储1256-阿拉伯、储储1255-希伯来、储储1254-土耳其、储储1253-希腊、储1252-拉丁1字符,ANSI,、1251-西里、储储储1250-中欧言、储储储950-繁体中文、949-朝、储储936-储体中文、932-日、储储874-泰国、储储850-多,储储储MS-DOS Latin1,、437-MSDOS美国英。储储 早期的中文系中,了足字符交出了交的概念,储储储储储储储储储储储储储储储储储储储储储储字符在本地存的数字叫做内,交到其他系先双储储储储储储储储储储储储储储储储储储储储储储储储 方都可的交,交在目系中在内存。储储储储储储储储储储储储储储储储储储储储储储储储储 5.Unicode 有一想,如果世界上所有的字符可以一制在储储储储储储储储储储储储储储储储储储储储储储储储 一个字符集中,所有的算机都使用个字符集,根据不同的需储储储储储储储储储储储储储储储储储储要采用特定的最的方式,那字符的存与交将迎刃而解。储储储储储储储储储储储储储储储储储储储储储储储储储 Unicode便是了个目而出的。储储储储储储储储储储储 Unicode由位于美国加州的Unicode储储,The Unicode Consortium,,管理,它是一个非利。目储储储储储储储储前,2010年8月,储止Unicode的最新版本储5.2.0。 6.UCS-2和UCS-4 Unicode是整合全世界的所有言文字而生的。任何文字在储储储储储储储储储储储储储储储储储储储储储储储Unicode中都一储储储个,个称代储储储储储储储储储储储点,code point,。代储储储储储储储储点的通常写成U+ABCD的格式。而文字和代储储储储储储储储储储储点之的系就是UCS-2,Universal Character Set coded in 2 octets,。储储名思储储,UCS-2是用两个字来表示代储储储储储储储储储储储储储储点,其取范U+0000,U+FFFF。 储储储储储储了能表示更多的文字,人又提出了UCS-4,即用四个字表示代储储储储储储储储储储储储点。它的范U+00000000,U+7FFFFFFF,其中 U+00000000,U+0000FFFF和UCS-2是一的。储储储 要注意,UCS-2和UCS-4只储储储储储储储储储储储储储储储储储定了代点和文字之的系, 并没有定代储储储储储储储储储储储储储储储储储储储储储储储储点在算机中如何存。定存方式的称UTF,Unicode Transformation Format,,其中用多的就是储储储储储储储UTF-16和UTF-8了。 7.UTF-16和UTF-32 UTF-16 UTF-16由RFC2781储储储储储储储储储储储定,它使用两个字来表示一个代点。 不储储储储猜到,UTF-16是完全于储储储UCS-2的,即把UCS-2储储储储储定的代点通Big Endian或Little Endian方式直接保存下来。UTF-16包括三:储储UTF-16,UTF-16BE,Big Endian,,UTF-16LE,Little Endian,。 Big Endian和Little Endian描述了多个字在算机中的存方式,比如字符储储储储储储储储储储储储储储储储0xabcd,它的存储储储储储储格式到底是AB CD,是储储CD AB呢,储储储储储储储储储上两者都有可能, 第2储 共10储 并分有不同的储储储储储储储储储储储储储名字。如果存AB CD,称储储储Big Endian,如果存储储CD AB,称储储储Little Endian。 具体来,以下存储储储储储储储储储储储格式Big Endian,因,储储储0xabcd,的高位,0xab,存在储储前面: 储 0x00000000AB 0x00000001CD 相反,以下存储储储储储储储格式Little Endian: 储 0x00000000CD 0x00000001AB UTF-16BE和UTF-16LE不理解,而储储储储储UTF-16就需要通在文储储储储储储储储储件以名BOM,Byte Order Mark,的字符来表明文件是Big Endian储是Little Endian。BOM储U+FEFF储个字符。 其储BOM是个小明的想法。由于储储储储储储储储UCS-2没有定储U+FFFE,因此只要出储 FF FE或者FE FF储储储储储储储储储储储储储的字序列,就可以它是U+FEFF,并且可以判断出是Big Endian储是Little Endian。 储“个例子。ABC”储储储储储储储储储储储储储三个字符用各方式后的果如下: 存内容储储储 UTF-16BE00 41 00 42 00 43 UTF-16LE41 00 42 00 43 00 UTF-16,Big Endian,FE FF 00 41 00 42 00 43 FF FE 41 00 42 00 43 00UTF-16,Little Endian, UTF-16,不储BOM,00 41 00 42 00 43 Windows平台下默储储的Unicode储储储Little Endian的UTF-16,即上述的FF FE 41 00 42 00 43 00,。 另外,UTF-16储能表示一部分的UCS-4代储储——点U+10000,U+10FFFF。表示算法比,明如下:储储储储储储储储储储储 从代储储点U中减去0x10000,得到U'。储储U+10000,U+10FFFF就储储储成了0x00000,0xFFFFF。 用20位二制数表示储储储储储U'。U'=yyyyyyyyyyxxxxxxxxxx将前10位和后10位用W1和W2表示,W1=110110yyyyyyyyyy,W2=110111xxxxxxxxxx,储W1 = D800,DBFF,W2 = DC00,DFFF。 例如,U+12345表示储D8 08 DF 45,UTF-16BE,,或者08 D8 45 DF,UTF-16LE,。 但是由于算法的存在,造储储储储储储储储储储成UCS-2中的U+D800,U+DFFF储储储储成了无定的字符。 UTF-32 UTF-32用四个字表示代储储储储储储储储储储储储储储储储点,就可以完全表示UCS-4的所有代储储储储点,而无需像UTF-16那使用的算法。与储储储储储储储储储储UTF-16储似,UTF-32也包括UTF-32、UTF-32BE、UTF-32LE三,储储储储UTF-32也同需要储储储BOM字符。用储储“ABC”储例: 存内容储储储 UTF-32BE00 00 00 41 00 00 00 42 00 00 00 43UTF-32LE41 00 00 00 42 00 00 00 43 00 00 00UTF-32,Big Endian,00 00 FE FF 00 00 00 41 00 00 00 42 00 00 00 43 FF FE 00 00 41 00 00 00 42 00 00 00 43 00 00 00UTF-32,Little Endian, UTF-32,不储BOM,00 00 00 41 00 00 00 42 00 00 00 43 8.UTF-8 UTF-16和UTF-32的一个缺点就是它储储储储储储储储储储储储储储储储储储储固定使用两个或四个字,在表示ASCII文件储储储储储会有很多00字,造储储储储储储储储成浪。而RFC3629定的储储UTF-8储储储储储储解决了个。 UTF-8用1,4个字来表示代储储储储储储储储储储储储储储储点。表示方式如下: 第3储 共10储 位序列存储 U+0000-00000000-0xxxxxxx0xxxxxxx U+007F U+0080-00000xxx-xxyyyyyy110xxxxx 10yyyyyyU+07FF U+0800-xxxxyyyy-yyzzzzzz1110xxxx 10yyyyyy 10zzzzzz U+FFFF U+10000-00000000-000wwwxx-11110www 10xxxxxx 10yyyyyy U+1FFFFFxxxxyyyy-yyzzzzzzz10zzzzzz 表示范如下:储储储储 各字范储储储 0xxxxxxx(00-7f) 110xxxxx 10xxxxxx(c0-df)(80-bf) 1110xxxx 10xxxxxx 10xxxxxx(e0-ef)(80-bf)(80-bf)11110xxx 10xxxxxx 10xxxxxx 10xxxxxx(f0-f7)(80-bf)(80-bf)(80-bf) 111110xx 10xxxxxx 10xxxxxx 10xxxxxx (f8-fb)(80-bf)(80-bf)(80-bf)(80-bf) 10xxxxxx 1111110x 10xxxxxx 10xxxxxx 10xxxxxx (fc-fd)(80-bf)(80-bf)(80-bf)(80-bf)(80- 10xxxxxx 10xxxxxxbf) 可,储储ASCII字符,U+0000,U+007F,部分完全使用一个字,储储储储避免了存空的储储储储储储储储储浪。而且UTF-8不再需要BOM字。储储 另外,从上表中可以看出,字的第一字储储储储储储储储储储储[00-7F],双字的第一字储储储储储储储储储[C0-DF],三字的第一字储储储储储储储储储[E0-EF]。储储储储储储储储储储储储储储储只要看到第一个字的范就 可以知道储储储储储储储储储储储储储储储储储储储的字数。也可以大大化算法。 9.Web储储储储中的字符集用 在Web储储储储储储储储储储储储储储储储储储储储中,服端与客端分布在不同的平台下,且客储储储储储储储储储储储储储储储储储储储储储储储储储储端,器,境比,因此,想要客端展示的字符与 服端储储储储储储储储储储储储储储储储储储储储储一致就需要一服端与客端的字符集。 字符在服端储储储储储储储储储储储储储储储储储储储储储储储的存是的、特定字符集下的代点,Code Point,,字符在储储储储储储储储储储储储储储储储储储储储储储储储储储储到客端,服端告知客端字符的方式和使用的字 符集,以便客端储储储储储储储储储储储储储储储储储储储储储储解原代点,并在定的字符集中找到代 储储储储储储储储储储储储储储储储储储储储点所的字符,最正确的将其展示用。 通常在字符集或方式,如果不特明,两个储储储储储储储储储储储储储储储储储储储储储储储储名 的含都是一的,描述的是字符使用哪字符集如何将代储储储储储储储储储储储储储储储储储储储储储储储储储储储储储点。 1.HTTP储储储储储储中的字符集理方式 在HTTP储储储储储储储储储储储储储储储储储储储储储储储中客端大概是判定收到的字符的方式的: 在一次储储储储储储储储储储储储储储储储储储储求后,客端会收到如下的响消息。 ServerResin/3.1.3 Cache-Controlprivate, no-cache Set-CookieJSESSIONID=abcExXhNxYwvb8OhOgYQs; path=/ Content-Typetext/html; charset=GBK Transfer-Encodingchunked DateFri, 27 Aug 2010 05:52:15 GMT Pragmano-cache Expires0 第4储 共10储 其中“Content-Type”储中的charset是服端储储储储储储储储储储储储储储指定的字符方式,客端可以以此储储储储储储储储储储储储储储依据解服端的响内容。 在html储储储储储储储储储储储面中,有会出下面的代。 当服端储储储储储储储储储储储储储的响消息中没有指定charset储储储储储储储储储储储储,客端会依据上面代中的charset指定的方式解面。储储储储储储储储储 如果服端储储储储储储储储储储储储储储既没有在响消息中指定charset,又没有在html中指定charset,那储客端储储储储储储储储储储储储储储储储储储储储储储储会根据自己的置,或由用指定或由自己的算 法判断,一自己储储储储储储储储储储储储储储储储储储储储储储储支持的方式响信息行解。 在AJAX技储储储储储储储储中,如果不指定charset,客端储储储储储将UTF-8作默储储储储储储储储储的方式行解。储储 10.Java EE提供的解决 字符储储储储储储储储储储储储储储储储储储储储储储储储主要存在于服端接受求之后的响信息中,因些信息是需要储储储储储储储储储储储储储储储储客端的。 java的ServletResponse储象提供了setContentType和setCharacterEncoding,Java EE 1.4以上,方法,来定储储储储储储储储储响消息中的charset,个定需要符合储储储储储储储储储储储储响内容的情储储储储储储储况。 储于非jsp的文本文件,如“js”、“css”、“html”,在中需要储储储储储储储储储储注意按照其储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储的情况置响消息,以便客端可以正确的理解文件中的信息。 储于jsp,java EE提供了一整套方案解决,在储储储储储储储储写jsp储,通常会用到下列代储。 <%@ page pageEncoding=”UTF-8”%> <%@ page contentType=”text/html; charset=GBK”%> “pageEncoding”指定了当前jsp文件存使用的方式,储储储储储储储储储“contentType”用来指定响消储储储储储储“息中的Content-Type”。 jsp在被储储储储储储储储储储储求会被的成servlet,在将jsp储储成servlet储,Java EE容器会根据上面的两个参数用储储ServletResponse的setContentType或setCharacterEncoding方法合理的置储储储储储储储储储储储储储储响消息中的信息。 如果在jsp中没有制定“contentType”,Java EE容器会将“pageEncoding”,即jsp储储储的储储“方式,作contentType”中的charset储储储储储储储储储储储储储储,置到响消息中,如果“pageEncoding”的方式与储储储储储“contentType”中的方式不一储储储储储储储储致,Java EE容器会遵照contentType中的置,储储储储jsp储储储储储储储储储储储储储储储储储储行,然后将内容响到客端。 11.数据中的字符集储储储储储储 通常数据管理系都储储储储储储储储储储储储储储储储储储储储储支持多字符集,在建一个数据储储储储储储储储储储储储储例可以其置字符集。 一般型储储储储储储储储储储储储储储储储储储储储储储储的字符字段,数据管理系在存方面并不 心其字符集,仍旧按字储储储储储储储储储储储储储储储储储储储保存,在存字符字段,字符将被成当前数据储储储储储储储储储储储储储储储储储例定的字符集下的代点保存。 随着Unicode的展,储储储储储储储储储储储储储储储储很多数据管理系提出了Unicode的支持方案,增加了一些储用于Unicode的字符字段型储储储储,如Oracle中的nchar、nvarchar2,SQL Server中的nchar、nvarchar,它通常储储储储储储储储只允插入Unicode字符,存方面也遵循储储储储储储Unicode储准。 12.附储 1.GB2312与EUC-CN 第5储 共10储 GB2312是我国国家准储储储储储局于1980年布储储储储的、1981储储储储储储储储储始施的一套体中文字符集的国家准,全称《信息交用字字符集储储储储储储储储储储储储储储储储储储?基本集》,准号储储储GB2312-1980。GB2312储储准共收6763个常用字和储储储682个非字储储储储储储储储储储储形字符,所收的储储储储字覆盖了我国常用字的99.75%,能储储储储储储储储储储储储储基本足算机理需求。 区位:将储储储GB2312所收的全储储储储储储储储储储储储储储部字和字符排成一个94×94的方,一储储储储储储行称一每个区,号“”储储储01-94,十制,,储储“”储储储储一列称一个位,号每01-94,十制,,储储储储储储就得到GB2312的区位,在区位中的各个字及字符都有储储储储储储储储储储储储储储储储储储储储储储储储固定的唯一一个4位数的储储,区号排在前,位号在后,,就是区位。储储储储储储储储储 01-09区非字储储储储储储储储储储储储储储储储储储储储形字符,包括特殊符号、拉丁字母、 希腊字母、日文假名及俄文字母,16-55区一字,储储储储储储储储储储储储储储按字拼音排序,56-87区二储储储储储储储储字,按字部首/笔画排序,10-15区及88-94区储储储储储储储储储储储储储储作留空,未行。 GB2312储准采用EUC-CN,Extended Unix Code,存方法,储储储储储储储储储储储个字及符号用两字每来表示,第一个字用来表示区号,称储储“储”储储储“高位字,第二个字表示位号,称低位字 储”储储储储储储储储储储储储储储储储储储储储储储储储储储储储储储。个字和符号的十制的区号、位号分算每成十六制,然后再加上0xA0,便可得到高位字的范“储”储储0xA1-0xF7,区号0x01+0xA0 – 0x57+0xA0,,低位字的范“储”储储0xA1-0xFE,位号0x01+0xA0 – 0x5E+0xA0,。储储储储储“器上的charset=GB2312”通常是指“charset=EUC-CN”。 第6储 共10储
/
本文档为【关于字符集与字符编码&#46;doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索