刨根究底字符编码之四——EASCII及ISO 8859字符编码方案
EASCII及ISO 8859字符编码方案
1.
计算机出现之后,首先逐渐从美国发展到了欧洲。由于欧洲很多国家所用到的字符中,除了基本的、美国也用的那128个ASCII字符之外,还有很多衍生的拉丁字母等字符。比如,在法语中,字母上方有注音符号;而欧洲其他国家也有各自特有的字符。
考虑到一个字节能够表示的编码实际上有256个(2^8 = 256),而ASCII字符却只用到了一个字节中的低7位(因此在ASCII码中最高位总是为0),编号为0x00~0x7F(十进制为0~127)。也就是说,ASCII只使用了一个字节所能表示的256个编码中的前128个(2^7 = 128)编码,而后128个编码相当于被闲置了。因此,欧洲各国纷纷打起了后面这128个编码的主意。
2.
可问题在于,欧洲各国同时都有这样的想法。于是各国针对后面的0x80~0xFF(十进制为128~255)这128个编码分别对应什么样的字符,就有了各自不同的设计。
为了结束欧洲各国这种各自为政的混乱局面,于是又先后设计了两套统一的,既兼容ASCII码,又支持欧洲各国所使用的那些衍生字符的单字节编码方案:一个是EASCII(Extended ASCII)字符编码方案,另一个是ISO/IEC 8859字符编码方案。
(笨笨阿林原创文章,转载请注明出处)
3.
先来说EASCII码。EASCII码同样也是将ASCII中闲置的最高位(即首位)用来编码新的字符(这些ASCII字符之外的新字符,其最高位总是为1)。换言之,也就是将一个字节中的全部8个比特位用来表示一个字符。比如,法语中的é的编码为130(二进制1000 0010)。
显然,EASCII码虽与ASCII码一样使用单字节编码,但却可以表示最多256个字符(2^8 = 256),比ASCII的128个字符(2^7=128)多了一倍。
因此,在EASCII码中,当第一个比特位(即字节的最高位)为0时,仍表示之前那些常用的ASCII字符(实际的二进制编码为0000 0000 ~ 0111 1111,对应的十进制就是0~127),而为1时就表示补充扩展的其他衍生字符(实际的二进制编码为1000 0000 ~ 1111 1111,对应的十进制就是128~255)。
这样就在ASCII码的基础上,既保证了对ASCII码的兼容性,又补充扩展了新的字符,于是就称之为Extended ASCII(扩展ASCII)码,简称EASCII码。
EASCII码比ASCII码扩充出来的符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号,如下表所示。
4.
不过,EASCII码目前已经很少使用,常用的是ISO/IEC 8859字符编码方案。该方案与EASCII码类似,也同样是在ASCII码的基础上,利用了ASCII的7位编码所没有用到的最高位(首位),将编码范围从原先ASCII码的0x00~0x7F(十进制为0~127),扩展到了0x80~0xFF(十进制为128~255)。
ISO/IEC 8859字符编码方案所扩展的这128个编码中,实际上只有0xA0~0xFF(十进制为160~255)被实际使用。也就是说,只有0xA0~0xFF(十进制为160~255)这96个编码定义了字符,而0x80~0x9F (十进制为128~159)这32个编码并未定义字符。
显然,ISO/IEC 8859字符编码方案同样是单字节编码方案,也同样完全兼容ASCII。
5.
注意,与ASCII、EASCII属于单个独立的字符集不同,ISO/IEC 8859是一组字符集的总称,其下共包含了15个字符集,即ISO/IEC 8859-n,其中n=1,2,3,...,15,16(其中12未定义,所以共15个)。
这15个字符集大致上包括了欧洲各国所使用到的字符(甚至还包括一些外来语字符),而且每一个字符集的补充扩展部分(即除了兼容ASCII字符之外的部分)都只实际使用了0xA0~0xFF(十进制为160~255)这96个编码。
其中,ISO/IEC 8859-1收录了西欧常用字符(包括德法两国的字母),目前使用得最为普遍。ISO/IEC 8859-1往往简称为ISO 8859-1,而且还有一个称之为Latin-1(也写作Latin1)的别名。
6.
其余从ISO 8859-2到ISO 8859-16各自所收录的字符如下:
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-9字符集,也称为Latin-5或Turkish,收录了土耳其字符;
ISO 8859-10字符集,也称为Latin-6或Nordic,收录了北欧(主要指斯堪地那维亚半岛)的字符;
ISO 8859-11字符集,也称为Thai,从泰国的TIS620标准字符集演化而来;
ISO 8859-12字符集,目前尚未定义(未定义的原因目前有两种说法:一是原本要设计成一个包含塞尔特语族字符集的“Latin-7”,但后来塞尔特语族变成了ISO 8859-14 / Latin-8;二是原本预留给印度天城体梵文的,但后来却搁置了);
ISO 8859-13字符集,也称为Latin-7,主要函盖波罗的海(Baltic)诸国的文字符号,也补充了一些被Latin-6遗漏的拉脱维亚(Latvian)字符;
ISO 8859-14字符集,也称为Latin-8,它将Latin-1中的某些符号换成塞尔特语(Celtic)的字符;
ISO 8859-15字符集,也称为Latin-9,或者被戏称为Latin-0,它将Latin-1中较少用到的符号删除,换成当初遗漏的法文和芬兰字母,还把英镑和日元之间的金钱符号,换成了欧盟货币符号;
ISO 8859-16字符集,也称为Latin-10,涵盖了阿尔巴尼亚语、克罗地亚语、匈牙利语、意大利语、波兰语、罗马尼亚语及斯洛文尼亚语等东南欧国家语言。
« 上一篇: 刨根究底字符编码之三——字符编码的由来
» 下一篇: 刨根究底字符编码之五——简体汉字编码方案(GB2312、GBK、GB18030、GB13000)以及全角、半角、CJK
刨根究底字符编码之四——EASCII及ISO 8859字符编码方案相关推荐
- 【转】刨根究底字符编码之四——EASCII及ISO 8859字符编码方案
1. 计算机出现之后,首先逐渐从美国发展到了欧洲.由于欧洲很多国家所用到的字符中,除了基本的.美国也用的那128个ASCII字符之外,还有很多衍生的拉丁字母等字符.比如,在法语中,字母上方有注音符号: ...
- 一文读懂字符编码(ASCII、ISO 8859、GB系列、Unicode)
一文读懂字符编码(ASCII.ISO 8859.GB系列.Unicode) 一.字符编码相关组织 1.1 ANSI 美国国家标准学会 1.2 Ecma 国际 1.3 ISO/IEC 1.4 统一码联盟 ...
- 字符编码的故事(ASCII ISO GBK GB2312 UTF-8)
转载自:http://yuncode.net/article/a_520afe25b065d13 另有一篇对"UTF-8 GBK UTF8 GB2312 之间的区别和关系"描述比较 ...
- mysql存json将utf8编码 去掉,MySQL对JSON类型UTF-8编码导致中文乱码探讨
原文:https://www.cnblogs.com/CreateMyself/p/12587426.html 前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有 ...
- 字符集和字符编码(附c语言判断utf8编码)
1.基础知识 1.1.字符集 字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等. 字符集(Character set)是多个字符的集合,字符集种类较多,每 ...
- 编码gbk的不可映射字符_Python基础:编码表和字符的故事
在计算机内部,都是每8位组成的一个个字节,比如我们使用"abc".encode()把abc转化成二进制byte类型,注意byte是不可变类型: 编码过程 >>> ...
- QR码生成原理-QR Code(ISO 18004)编码方式
QR码生成原理-QR Code(ISO 18004)编码方式 一.什么是QR码 QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化.QR码的样子其实在很多 ...
- python转换字符编码_转:Python常见字符编码及其之间的转换
一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...
- python字符编码使用的是什么编码_不可不知的Python字符编码使用技巧(上)
Python语言在网络爬虫领域应用的十分广泛.在爬虫的应用程序中,我们需要对网页上获取的数据进行处理,其中字符的编码.解码常常让人感到困惑:ASCII码.Unicode.字符编码什么的,很多朋友一直为 ...
- unicode字符编码表下载_详解字符编码(上)
作者 | 张奎 字符编码相关问题是软件开发过程中的常见问题,本文对字符编码的概念进行了介绍,并针对字符编码的常见问题给出了解释. 字符编码概念 下面以一个例子来引入对字符编码的介绍,汉字"柯 ...
最新文章
- pytorch 优化器 机器学习 调参
- 机虚拟磁盘附加到计算机上,解决在NAS的共享文件夹下的VHDX虚拟磁盘无法附加到系统...
- 3638MySQL数据库应用答案_Mysql数据库多实例配置
- docker报错解决办法:Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp
- java设计模式之UML②类图讲解
- iOS 点转成字符串,再字符串转换成点
- python 写csv_人生苦短,学用python
- 喜欢的歌——星月神话(金莎)
- Tomcat9安装及配置步骤
- 高通芯片资料下载大全,这是一个资料下载论坛
- hive 如何将数组转成字符串_HIve字符串函数
- google scholar 使用不了的问题——已解决
- 不小心设置了xml文件中的namespace(xmln)如何取消
- nginx的 ngx.var ngx.ctx ngx.req
- 第四章 虚拟现实的计算体系结构
- svn update 时报错 Node remains in conflict 和解决方法
- 计算机人文素养教案,小学信息技术课堂中人文素养的教学探究
- 带你10分钟学会 Git Extensions
- 希捷250G硬盘经PM8提示分区表错误修复后不能使用
- Qt程序获取管理员权限