一.基本概念
- 字符集(Charset)就是一组抽象字符的集合。
- 字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。
- 一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。
- 我们知道计算机内部是用二进制表示数据的,计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。
- 制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。
- 根据字符集内字符的多少,会确定用几个字节来编码。
- 每种编码都限定了一个明确的字符集合,叫做被编码过的字符集(Coded Character Set),这是字符集的另外一个含义。通常所说的字符集大多是这个含义。下文我还是以字符编码这个词来描述。
二.有哪些字符编码
- 标准ASCII
- 扩展ASCII
- ISO 8859系列
- GB系列
- UCS
- Unicode
三.标准ASCII编码
ASCII: American Standard Code for Information Interchange,美国信息交换标准码。
- ASCII规定了128个字符(空格、标点符号、数字、大小写字母),以及其对于的128个二进制表示(0000 0000 - 01111 1111)。
- 一个ASCII码值占一个字节(8个二进制位),标准(原生态)ASCII表中最高位(b7)用作奇偶校验位,其它的七位就表示上面说的128个字符。
- 有时候面试官会问,字符'A'对于的ASCII值是多少,还是记住这些吧。'A'=65,'a'=97,'0'=48。
四.扩展ASCII编码
- ISO 8859 - 数字:ISO 8859,全称ISO/IEC 8859,是国际标准化组织(ISO)及国际电工委员会(IEC)联合制定的一系列8位字符集的标准。
- 标准ASCII收录了空格及94个“可印刷字符”,足以给英语使用。但是,其他使用拉丁字母的语言(主要是欧洲国家的语言),都有一定数量的变音字母,于是它们利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制1000 0010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。
- 但是,地区和地区之间在使用这个闲置的最高位时,并不是一致的啊,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (ג),在俄语编码中又会代表另一个符号。于是产生了ISO 8859-数字 表示不同地区的编码。
* ISO 8859-1 (Latin-1) - 西欧语言
* ISO 8859-2 (Latin-2) - 中欧语言
* ISO 8859-3 (Latin-3) - 南欧语言。世界语也可用此字符集显示。
* ISO 8859-4 (Latin-4) - 北欧语言
* ISO 8859-5 (Cyrillic) - 斯拉夫语言
* ISO 8859-6 (Arabic) - 阿拉伯语
* ISO 8859-7 (Greek) - 希腊语
* ISO 8859-8 (Hebrew) - 希伯来语(视觉顺序)
* ISO 8859-8-I - 希伯来语(逻辑顺序)
* ISO 8859-9 (Latin-5 或 Turkish) - 它把Latin-1的冰岛语字母换走,加入土耳其语字母。
* ISO 8859-10 (Latin-6 或 Nordic) - 北日耳曼语支,用来代替Latin-4。
* ISO 8859-11 (Thai) - 泰语,从泰国的 TIS620 标准字集演化而来。
* ISO 8859-13 (Latin-7 或 Baltic Rim) - 波罗的语族
* ISO 8859-14 (Latin-8 或 Celtic) - 凯尔特语族
* ISO 8859-15 (Latin-9) - 西欧语言,加入Latin-1欠缺的法语及芬兰语重音字母,以及欧元符号。
* ISO 8859-16 (Latin-10) - 东南欧语言。主要供罗马尼亚语使用,并加入欧元符号。
- 所有这些编码方式中,0-127表示的符号是一样的,不一样的只是128—255的这一段。兼容ASCII。
- 记住ISO 8895 - 数字仍然是单字节编码。
- GB类
- GB2312:使用2个字节表示,包括6763个汉字。几乎覆盖所有高频率汉字。低字节兼容ASCII。
- GBK:使用2个字节表示,包括21003个汉字。是GB2312的扩展,加入对繁体字的支持,兼容GB2312。
- BIG5:使用2个字节表示,包括国标繁体汉字13053。是台湾繁体字集。
- GB18030:它采用变字节表示(1 ASCII,2,4字节),包括27484个汉字。
- UCS:通用字符集(Universal Character Set,UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的字符编码方式。
- 采用4个字节编码。
- UCS包含了已知语言的所有字符。除了拉丁语、希腊语、斯拉夫语、希伯来语、阿拉伯语、亚美尼亚语、格鲁吉亚语,还包括中文、日文、韩文这样的象形文字,UCS还包括大量的图形、印刷、数学、科学符号。
- * UCS-2: 2byte编码,与unicode的2byte编码基本一样。
* UCS-4: 4byte编码,目前是在UCS-2前加上2个全零的byte。 所以从编码内容上看UCS=Unicode。
- Unicode:统一码、万国码、单一码
- Unicode为世界650种语言进行统一编码,兼容ISO-8859-1。
- 采用2个字节编码。实际上目前版本的Unicode尚未填充满这2个字节,保留了大量空间作为特殊使用或将来扩展。
五.编码实现方式
Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。UTF(UCS Transfer Format)。
- UTF-8就是在互联网上使用最广的一种unicode的实现方式。其他实现方式还包括UTF-16和UTF-32,不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一。
-
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
-
Unicode转换成UTF-8
Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
六.本文侧重点
本文主要侧重把常见编码方式进行分类,以及它们之间的兼容性。没有谈到每种编码的字节什么范围到什么范围保存数据。
六.参考文章
- http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
- http://turandot.iteye.com/blog/1703258
只是对上述文章的一个理解和整理,欢迎拍砖,欢迎指正。
分享到:
相关推荐
本书即为《计算机组成原理》,涵盖原书前三部分,共6章,主要介绍计算机系统的组成和体系结构的基本概念、指令系统以及处理器实现等涉及计算机组成原理课程的内容。 目录: 第1章 计算机系统体系结构 4 1.1 什么是...
答:计算机常用编码如下: 1>Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一 2>ASCll字符集:美国信息互换标准代码,是基于罗马字母表的一套电脑编码系统,主要显示英语和一些西欧语言,是现今最通用 的...
5. 在小型或微型计算机里,普遍采用的字符编码是______。 A. BCD码 B. 16进制 C. 格雷码 D. ASCⅡ码 6. 下列有关运算器的描述中,______是正确的。 A.只做算术运算,不做逻辑运算 B. 只做加法 C.能暂时存放运算结果...
计算机硬件的组成及各组成部分的功能 要理解以存储器为中心的计算机组成原理图 运算器:对信息和数据进行运算和加工处理,运算包括算术运算和逻辑运算。 控制器:实现计算机自身处置过程的自动化,指挥计算机各部件...
计算机硬件的组成及各组成部分的功能 要理解以存储器为中心的计算机组成原理图 运算器:对信息和数据进展运算和加工处理,运算包括算术运算和逻辑运算。 控制器:实现计算机自身处置过程的自动化,指挥计算机各部件...
数字编码就是用数字串代表一个汉字的输入 ,常用的是国标区位码,也有用电报码 使用区 位码输入汉字时,必须根据国标GB3212《信息交换用汉字编码字符集一一基本集》,先查出 汉 字对应的代码 , 然后才能输入 ....
计算机系统是由中央处理器、存储器和输入输出设备组成。 〔 〕 2.机箱中的设备是主机,机箱外的设备是外设。 〔 〕 3.机房温度太高会产生雾化,腐蚀元件,甚至发生短路,而温度太低会产生静电, 也对计算机不利。 ...
理论、实习练习集 中职计算机应用基础习题集与答案 34 . z. 第一部分 理论练习题 计算机基础知识 一、填空题 1.目前普遍使用的微型计算机属于第代计算机,其元件采用了电路技术。 2.计算机系统包括系统及系统。 3...
春福师《计算机原理与接口技术》在线作业二 一、 单选题( 共 30 道试题, 共 60 分。) 1. 计算机经历了从器件角度划分的四代发展历程, 但从系统结构来看, 至今为止绝大多数计算机仍是( ) 式计算机。 A. 实时处理 B. ...
选择安装路径,选择数据库版本(企业版),选择字符集(默认值) 填写全局数据库名,管理口令 6. 步骤5/8:先决条件检查 如果你的电脑满足要求但仍然显示检查失败,这时候直接忽略,勾选全部忽略 7. 步骤6/8:概要信息...
计算机系统是由中央处理器、存储器和输入输出设备组成。 ( ) 2.机箱中的设备是主机,机箱外的设备是外设。 ( ) 3.机房温度太高会产生雾化,腐蚀元件,甚至发生短路,而温度太低会产生静电,
)、地址寄存器等 外部设备用户与机器之间桥梁输入设备任务把用户要求计算机处理数据、字符、文字、 图形和程序等各种形式信息转换计算机所能接受编码形式存入计算机内输出设备任务把 计算机处理结用户需要形式(屏幕...
计算机系统是由中央处理器、存储器和输入输出设备组成。 ( ) 2.机箱中的设备是主机,机箱外的设备是外设。 ( ) 3.机房温度太高会产生雾化,腐蚀元件,甚至发生短路,而温度太低会产生静电, 也对计算机不利。 ...
计算机系统是由中央处理器、存储器和输入输出设备组成。 ( ) 2.机箱中的设备是主机,机箱外的设备是外设。 ( ) 3.机房温度太高会产生雾化,腐蚀元件,甚至发生短路,而温度太低会产生静电,
1、第一台电子计算机名叫“埃尼阿克)(ENIAC),计算机的发展经历了四代,第一代是电子管计算机,第二代为晶体管计算机,第三代为中小规模集成电路计算机,第四代为大规模和超大规模集成电路计算机。目前使用的是...
在微型计算机中, 应用最普遍字符编码是ASCII码。 15.计算机工作原理是程序存放。 16.8个字节含二进制位64。 17.计算机发展各阶段是以作为标志。 18.标准ASCII码用__7位二进制数表示字符, 用来表示128种不一样字符...
Struts framework的工作原理和组件 642 Struts ActionServlet控制器对象 642 Struts Action Classes 642 搞定Action对象 643 处理异常 643 Action的分类 643 Struts Action Mapping 646 使用ActionForward导航 647 ...
这篇文章主要介绍了MySQL索引长度限制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 索引 TextField是不支持建立索引的 MySQL对索引字段长度有限制 ...