概述
- 什么是字符集
字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。 一组抽象字符的集合就是字符 集(Charset)。
字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。
常见的字符集包括ASCII字符集(由控制字符和图形字符组成)、GB2312字集(简体字集),GBK字集(简繁字集),通用字符集(Universal Character Set,UCS),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+0000到U+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
最后
以上就是忧心鞋子为你收集整理的理清字符集和字符编码关系的全部内容,希望文章能够帮你解决理清字符集和字符编码关系所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复