`
小滔哥
  • 浏览: 58895 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

理清字符集和字符编码关系

    博客分类:
  • Java
 
阅读更多

 

  • 什么是字符集

    字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。 一组抽象字符的集合就是字符         集(Charset)

    字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。

    常见的字符集包括ASCII字符集(由控制字符和图形字符组成)、GB2312字集(简体字集)GBK字集(简繁字集),通用字符集(Universal Character SetUCS)Unicode字集(UCS)

 

  • 什么是字符编码

    字符编码(Character Encoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母 表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的 一项基本技术。通常人们用符号 集合(一般情况下就是文字)来表达信息。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代 表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。

 

 

  • 字符集和字符编码直接的关系

    以ascii字符集和ascii编码为例

    Ascii字符集包含A,B,C….等字符

    Ascii编码是一种将ascii字符集中的字符映射到计算机的映射关系,即表示字符与存储形式的对应关系。

    A--------------------------->65

    B--------------------------->66

    C--------------------------->67

 

 

  • 针对Unicode的编码UTF-32,UTF-16,UTF-8

      UTF-32,对每个字符都使用4字节,就空间而言,是非常没有效率的。特别地,非基本多文种平面的字符在大部分文件中通常很罕见,以致于它们通常被认为不存在占用空间大小的讨论,使得UTF-32通常会是其它编码的二到四倍。

      UTF-16,Unicode的码空间从U+0000U+10FFFF,对每个字符使用2字节或者4字节进行存储。java中的string就是使用UTF-16编码存储的,当一个字符的编码在16bit范围内,就用一个char存储,当字符编码范围超过16bit时,用两个char来保存这个字符。

      UTF-8使用一至四个字节为每个字符编码。

      可以参考下面链接,去了解unicode编码的一些详细信息。

    http://zh.wikipedia.org/wiki/UTF-32

    http://zh.wikipedia.org/wiki/UTF-16

    http://zh.wikipedia.org/wiki/UTF-8

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics