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码扩充出来的符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号,如下表所示。

扩展ASCII(EASCII)编码表

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,涵盖了阿尔巴尼亚语、克罗地亚语、匈牙利语、意大利语、波兰语、罗马尼亚语及斯洛文尼亚语等东南欧国家语言。

分类: 刨根究底字符编码
标签: 字符编码, 字符集, ASCII, GB2312, GBK, Unicode, UTF-8, UTF-16, 字节序, 大小端

« 上一篇: 刨根究底字符编码之三——字符编码的由来

» 下一篇: 刨根究底字符编码之五——简体汉字编码方案(GB2312、GBK、GB18030、GB13000)以及全角、半角、CJK

刨根究底字符编码之四——EASCII及ISO 8859字符编码方案相关推荐

  1. 【转】刨根究底字符编码之四——EASCII及ISO 8859字符编码方案

    1. 计算机出现之后,首先逐渐从美国发展到了欧洲.由于欧洲很多国家所用到的字符中,除了基本的.美国也用的那128个ASCII字符之外,还有很多衍生的拉丁字母等字符.比如,在法语中,字母上方有注音符号: ...

  2. 一文读懂字符编码(ASCII、ISO 8859、GB系列、Unicode)

    一文读懂字符编码(ASCII.ISO 8859.GB系列.Unicode) 一.字符编码相关组织 1.1 ANSI 美国国家标准学会 1.2 Ecma 国际 1.3 ISO/IEC 1.4 统一码联盟 ...

  3. 字符编码的故事(ASCII ISO GBK GB2312 UTF-8)

    转载自:http://yuncode.net/article/a_520afe25b065d13 另有一篇对"UTF-8 GBK UTF8 GB2312 之间的区别和关系"描述比较 ...

  4. mysql存json将utf8编码 去掉,MySQL对JSON类型UTF-8编码导致中文乱码探讨

    原文:https://www.cnblogs.com/CreateMyself/p/12587426.html 前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有 ...

  5. 字符集和字符编码(附c语言判断utf8编码)

    1.基础知识 1.1.字符集 字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.  字符集(Character set)是多个字符的集合,字符集种类较多,每 ...

  6. 编码gbk的不可映射字符_Python基础:编码表和字符的故事

    在计算机内部,都是每8位组成的一个个字节,比如我们使用"abc".encode()把abc转化成二进制byte类型,注意byte是不可变类型: 编码过程 >>> ...

  7. QR码生成原理-QR Code(ISO 18004)编码方式

    QR码生成原理-QR Code(ISO 18004)编码方式 一.什么是QR码 QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化.QR码的样子其实在很多 ...

  8. python转换字符编码_转:Python常见字符编码及其之间的转换

    一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  9. python字符编码使用的是什么编码_不可不知的Python字符编码使用技巧(上)

    Python语言在网络爬虫领域应用的十分广泛.在爬虫的应用程序中,我们需要对网页上获取的数据进行处理,其中字符的编码.解码常常让人感到困惑:ASCII码.Unicode.字符编码什么的,很多朋友一直为 ...

  10. unicode字符编码表下载_详解字符编码(上)

    作者 | 张奎 字符编码相关问题是软件开发过程中的常见问题,本文对字符编码的概念进行了介绍,并针对字符编码的常见问题给出了解释. 字符编码概念 下面以一个例子来引入对字符编码的介绍,汉字"柯 ...

最新文章

  1. pytorch 优化器 机器学习 调参
  2. 机虚拟磁盘附加到计算机上,解决在NAS的共享文件夹下的VHDX虚拟磁盘无法附加到系统...
  3. 3638MySQL数据库应用答案_Mysql数据库多实例配置
  4. docker报错解决办法:Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp
  5. java设计模式之UML②类图讲解
  6. iOS 点转成字符串,再字符串转换成点
  7. python 写csv_人生苦短,学用python
  8. 喜欢的歌——星月神话(金莎)
  9. Tomcat9安装及配置步骤
  10. 高通芯片资料下载大全,这是一个资料下载论坛
  11. hive 如何将数组转成字符串_HIve字符串函数
  12. google scholar 使用不了的问题——已解决
  13. 不小心设置了xml文件中的namespace(xmln)如何取消
  14. nginx的 ngx.var ngx.ctx ngx.req
  15. 第四章 虚拟现实的计算体系结构
  16. svn update 时报错 Node remains in conflict 和解决方法
  17. 计算机人文素养教案,小学信息技术课堂中人文素养的教学探究
  18. 带你10分钟学会 Git Extensions
  19. 希捷250G硬盘经PM8提示分区表错误修复后不能使用
  20. Qt程序获取管理员权限

热门文章

  1. 解决无法删除文件夹的情况
  2. 使用requests爬取电影天堂数据,用lxml和Xpath
  3. linux监控工具gotop
  4. 教你用安卓神器-APK编辑器(手机端)改程序名+去程序广告!
  5. 虚幻引擎(UE4)场景漫游交互项目制作
  6. C相关笔试题或者面试题中的概念以及技巧题2
  7. NC 一些常用方法总结
  8. 强连通分量 Kosaraju科萨拉朱算法
  9. Cortex-A715的介绍
  10. 嵌入式系统开发-麦子学院(3)——Linux C初级编程1