`
woniu1983
  • 浏览: 167792 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[拾遗] 字符编码(Encoding)

阅读更多
  之前对Unicode、UTF-8诸如此类一直不甚了了;

  前日看到smartzxy的一篇关于Unicode的文章: http://www.iteye.com/topic/692602, 于是想进一步了解下UTF字符编码。

  今天翻了下网上的资料和Unicode最新的文档5.2.0: http://www.unicode.org/versions/Unicode5.2.0/

   暂且在这里做个读书笔记吧:
------------------------------------------------------------------------------------------------------------------------------------------------------------------
   一. 概念普及
   

    字符(Character):是文字与符号的总称,包括文字、图形符号、数学符号等。

    字符集(Charset):即字符的集合,规定了在这些集合里面有哪些字符,常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集。 。

    字符编码(Encoding):计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码。


    字符集就是实实在在的文字和图像等,就好比:世界上的每个人;
       而字符编码就是给特定的字符集中的文字、图像等设定编号方便计算机辨认、处理和传输,就好比是:标识每个中国公民的身份ID,这里中国公民是一个特定的字符集,身份ID就是这个编码方式。(比喻不是很恰当,但可以这么理解。)



    由此可以推导: 一种字符编码是与某一个特定的字符集对应的,但是一个字符集却可能有多种字符编码(就好比:每个中国公民可以拥有中国的身份ID和国际的护照ID等多种标识方式,而中国的身份ID自然不能用来标识外国公民)  

------------------------------------------------------------------------------------------------------------------------------------------------------------------
  二. 字符编码
      那么我们接下来就来了解下都有哪些常用的字符编码方式:           

    1. 常见的字符编码(Encoding)      
       ASCII字符编码:
       ASCII编码1个字节 (8位) 来为字符编码,但实际上只用了一个字节的后7位,最高位统一规定为0,一共能表示128 (27)个字符。如:字符 'a' 的编码为 0110 0001,相当于十进制整数97,字符 'A' 的编码为 0100 0001,十进制整数为65。

       ISO-8859-1字符编码:
       又称Latin-1,是国际标准化组织(ISO)为西欧语言中的字符制定的编码,它用1个字节 (8位) 来为字符编码,共可表示255个字符。与ASCII编码兼容。(所谓兼容,是指对于相同的字符,它的编码值相同)。

       UCS字符编码:通用字符集(Universal Character Set,UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的字符编码方式,采用4字节编码。UCS涵盖了已知语言的所有字符。

       Unicode字符编码:它是http://www.unicode.org制定的编码机制, 要将全世界常用文字都函括进去。使用2字节编码。

       还有GB2312 字符编码、 GBK 字符编码、GB18030字符编码、BIG5、Shift-JIS等等;


     2. UCS 和 Unicode的关系
      两者由不同的组织制定,目的都是想涵盖所有的字符,自Unicode 2.0版本之后,Unicode开始与UCS的字库同步, 两者的历史关系可以参考Unicode 5.2.0文档的“Appendix C Relationship to ISO/IEC 10646”。
      UCS编码有两种实现方式: UCS-2和 UCS-4
      Unicode编码目前有三种实现方式: UTF-8、UTF-16和 UTF-32
      UTF-32 基本等同于UCS-4(参考:http://zh.wikipedia.org/zh-cn/UTF-32),使用固定的32bit的编码方式;UTF-16原本是等同于UCS-2的,但就现在而言UTF-16应该是UCS-2的父集。

    3.  UTF-8 、 UTF-16和UTF-32
       UTF-8 、 UTF-16和UTF-32是Unicode提供的三种编码实现方案, UTF是Unicode (或者UCS) Transformation Format的简称。
      
All three encoding forms can be used to represent the full range of encoded characters inthe Unicode Standard; they are thus fully interoperable for implementations that may choose different encoding forms for various reasons. Each of the three Unicode encodingforms can be efficiently transformed into either of the other two without any loss of data.这三种编码方式能够描述Unicode标准中定义的所有的编码字符。每一种编码方式都能有效地无损地转化为其他两种编码方式。


     下面图截自Unicode文档:
     

      参考上图:
      UTF-32 : UTF-32是最为简单明了的编码方式,每个字符编码都是一个定长的二进制数(32bit, 4字节), 其范围从0 到 10FFFF。---全部使用4字节表示

      UTF-16 : UTF-16稍微复杂些,当字符编码处于0...FFFF区间时,使用定长的16位二进制数表示,而处于10000...10FFFF区间时,使用一对16-bit(=32bit)二进制数来表示。  ---基本都是使用双字节表示,一些额外的部分则使用1对双字节表示
  
      UTF-8 : 相比于上面两种编码方式,UTF-8可能更为灵活。 在存储ASCII等单字节字符时,上面两种不免很多浪费,因此实现了“面向Byte”的UTF-8编码方式。 UTF-8是变长的,使用1字节、2字节、3字节和4字节四种方式来存储不同的字符。请看下图:
http://woniu1983.iteye.com/upload/picture/pic/66122/8c9e40b1-4a62-3c0f-9eca-ce50abc97468.jpg

Scalar Value First ByteSecond ByteThird Byte Fourth Byte
00000000 0xxxxxxx 0xxxxxxx
00000yyy yyxxxxxx 110yyyyy10xxxxxx
zzzzyyyy yyxxxxxx 1110zzzz10yyyyyy10xxxxxx
000uuuuu zzzzyyyy yyxxxxxx 11110uuu10uuzzzz10yyyyyy10xxxxxx


   时间关系,先写这么多,后面再慢慢看看,有什么其他的再写。
     
     
0
0
分享到:
评论

相关推荐

    17. 拾遗物品登记表.pdf

    17. 拾遗物品登记表.pdf

    拾遗·椰雕.css

    拾遗·椰雕.css

    61.拾遗增补-线程的状态.mp4

    在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。

    洛中访袁拾遗不遇古诗阅读答案.docx

    《洛中访袁拾遗不遇》这首古诗是唐代诗人孟浩然的作品,它体现了孟浩然在文学创作中的独特艺术风格。诗的主题围绕着拜访友人却未能相遇的失落情感,同时也揭示了对友人遭遇贬谪的同情与不平。 在诗的第一句“洛阳访...

    拾遗物品的处理.doc

    《拾遗物品的管理制度》 在我们的日常生活中,人们时常会遇到拾获他人遗失物品的情况。这些物品可能包括各种个人财物,从证件、钥匙到电子产品等,它们都是失主的重要财产。拾金不昧,这不仅是中华民族的传统美德,...

    有感于《路边拾遗》-路边拾遗是什么意思.docx

    ### 有感于《路边拾遗》:摄影与心灵之旅 #### 一、摄影的意义与价值 《路边拾遗》是一本由两位非职业摄影师创作的摄影画册,书中不仅收录了他们拍摄的精美照片,更重要的是传达了作者对摄影艺术的理解与感悟。...

    初中语文文摘社会趣史拾遗

    初中语文文摘社会趣史拾遗

    access代码技巧拾遗

    access代码技巧拾遗 一、在窗体上加按钮,单击后删除窗体上的照片―― 二、在窗体上加文本框,对窗体上的列表框内的数据进行计数―

    《计算机底层知识拾遗》.pdf

    《计算机底层知识拾遗》.pdf

    邵世坤工作即兴诗拾遗.docx

    邵世坤工作即兴诗拾遗.docx

    奥数拾遗补充11

    【奥数拾遗补充11】这篇资料涵盖了多个数学领域,包括整除特性、等差数列、排列组合以及逻辑推理。以下是对这些知识点的详细解释: 1. **整除特性**: - **尾系**:判断一个数是否能被2、5整除主要看其个位数。...

    数学拾遗(all the mathematics you missed).zip

    中英对照看,熟悉专业的外语词汇,比国内那些考试型教材好多了。这两本,是我深入机器学习的数学基础书籍。

    c 语言知识点拾遗 c语言知识死角

    c语言知识点拾遗 c语言知识死角 绝对不容错过

    第10章 拾遗1

    在本章拾遗中,我们将探讨C语言中的一些高级特性,包括结构体成员函数、C语言中的布尔类型、预编译指令与条件编译以及位运算与位段结构。这些内容是C语言深入学习的重要部分。 首先,让我们关注结构体成员函数。在...

    拾遗物品的处理(文本范例)

    管吧小编带来一篇拾遗物品的处理(文本范例),在日常生活工作中需要用的朋友可以来使用,通过拾遗物品的...该文档为拾遗物品的处理(文本范例),是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看

    服务中心拾遗和暂存物品处理规定.pdf

    服务中心拾遗和暂存物品处理规定.pdf

Global site tag (gtag.js) - Google Analytics