字符编码发展史2 — ISO-8859-N

news/2024/12/29 8:43:27/文章来源:https://www.cnblogs.com/luoweifu/p/18419465
  • 2.2. 第二个阶段 本地化
    • 2.2.1. ANSI
    • 2.2.2. ISO/IEC 8859-N
      • 2.2.2.1. 什么是ISO/IEC 8859-N?
      • 2.2.2.2. ISO 8859-1的编码表

上一篇《字符编码发展史1 — ASCII和EASCII》我们讲解了字符编码的起源ASCII和EASCII。本篇我们将继续讲解字符编码的第二个发展阶段中的ISO 8859-N

2.2. 第二个阶段 本地化

2.2.1. ANSI

计算机发明之初及后面很长一段时间,只用于美国及西方一些发达国家,ASCII能够很好满足用户的需求。后来,随着个人计算机的发展和普及,美国这些生产计算机的企业(如IBM、惠普)希望把计算机卖到世界上更多的国家,其他的国家也希望能在自己的国家发展和应用计算机这个新技术,比如我们中国。

但是早期计算机使用ASCII编码只能满足英语国家和少数欧洲国家的需求,计算机要在全世界范围推广应用,就要解决各个国家语言编码的问题。各个国家、地区为了用计算机记录并显示自己的语言字符,都在ASCII编码方案的基础上,设计了各自的编码方案,于是就出现了很多适配不同地区语言的字符编码标准,如ISO 8859-NGB2312GBKBIG5等,这些编码方案被国际标准化组织收纳并将其标准化。

通过多套编码方式来适配不同地区语言的过程,也叫字符编码的本地化。所有这些各个国家和地区所独立制定的既兼容ASCII又互相之间不兼容的字符编码,微软统称为ANSI编码

ANSI其实有多个含义:

  • ANSI: 全称是American National Standards Institute,即 美国国家标准协会。它是一个非营利组织,负责协调和制定美国国家标准,并代表美国参与国际标准化活动。
  • ANSI: 微软的ANSI代码页。

计算机的普及是伴随着Windows操作系统的发展的,Windows操作系统以其强大的图形化界面和优秀的人机交互迅速占领了个人计算机90%多的市场份额,占据了统治性地位。微软的Windows作为全球性的操作系统,为了能适配各个国家和地区的语言,制定了一套代码页,用于映射各个国家和地区的语言的字符编码,微软称之为ANSI代码页(即ANSI Code Page,简称ACP)。

2.2.2. ISO/IEC 8859-N

EASCII虽然增加了欧洲常用字符,但是能表达的字符依然太少,甚至说远远不够,比如希腊语的字母表。

为了解决这个问题,ISO/IEC 8859-N 字符集和编码方案便应运而生。

2.2.2.1. 什么是ISO/IEC 8859-N?

  • ISO: 全称International Organization for Standardization,即 国际标准化组织。它是一个全球性的非政府组织,负责制定和发布国际标准,以促进全球贸易和技术交流。
  • IEC: 全称International Electrotechnical Commission,即 国际电工委员会。它是一个全球性的非政府组织,负责制定和发布与电气、电子和相关技术领域的国际标准。
  • ISO/IEC 8859: 是国际标准化组织(ISO)和国际电工委员会(IEC)制定的一组字符编码标准。ISO/IEC 8859也经常简称ISO 8859,如``ISO 8859-1`(后面的内容均以简称的方式描述)。

ISO 8859字符编码与EASCII字符编码的设计思路一样:同样是采用单个字节(8位)的编码方式,在ASCII码的基础上,利用了ASCII没有用到的最高位(首位),将编码范围从原先ASCII码的0x00~0x7F(十进制为0~127),增加0x80~0xFF,扩展到了0x00~0xFF(十进制为0~255)。

EASCII区别是:EASCII字符编码只包含了单个字符集(128个ASCII字符+128个扩展字符),而ISO 8859字符编码则包含一组字符集,每个字符集支持不同地区的语言。总共有15个子集,对应15种编码方式,从ISO 8859-1ISO 8859-16,其中ISO 8859-12未定义,所以实际上是15个,这15个子集的区别如下:

ISO 8859-n 英文别名 表达的语种 中文解释
ISO 8859-1 Latin-1 Western Europe 西欧语言
ISO 8859-2 Latin-2 Central Europe 中欧语言
ISO 8859-3 Latin-3 Southern Europe 南欧语言。世界语也可用此字符集显示。
ISO 8859-4 Latin-4 Baltic 北欧语言
ISO 8859-5 Cyrillic 斯拉夫语言
ISO 8859-6 Arabic 阿拉伯语
ISO 8859-7 Greek 希腊语
ISO 8859-8 Hebrew 希伯来语
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 Estonian 爱沙尼亚语,或 Baltic Rim 波罗的语族
ISO 8859-14 Latin-8 Celtic 凯尔特语族
ISO 8859-15 Latin-9 Western 西欧语言,加入Latin-1欠缺的芬兰语字母和大写法语重音字母,以及欧元(€)符号。
ISO 8859-16 Latin-10 Romanian 罗马尼亚语,东南欧语言,主要供罗马尼亚语使用,并加入欧元符号。

file

需要注意的是:

  • 这15个字符集全部都兼容ASCII编码。
  • 每一个字符集的补充扩展部分,都只实际使用了0xA0~0xFF(十进制为160~255)这96个编码,而0x80~0x9F(十进制为128~159)这32个编码并未实际定义字符。

至此,ISO 8859-N系列编码,基本上能满足大部分(以拉丁字符为语系的)欧洲国家。

2.2.2.2. ISO 8859-1的编码表

我们可以看一下ISO-8859-1的编码表:

file
ISO-8859-1 编码表


未完待续…… 欲知后事如何,且看下回分解。

下回预告:字符编码发展史3 — GB2312/Big5/GBK/GB18030。

历史文章推荐:

字符编码发展史1 — ASCII和EASCII


大家好,我是陌尘。

IT从业10年+, 北漂过也深漂过,目前暂定居于杭州,未来不知还会飘向何方。

搞了8年C++,也干过2年前端;用Python写过书,也玩过一点PHP,未来还会折腾更多东西,不死不休。

感谢大家的关注,期待与你一起成长。



【SunLogging】
扫码二维码,关注微信公众号,阅读更多精彩内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799571.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

?

CF1194G 在外层枚举\(x\)和\(y\),令\(x=x\times t,y=y\times t\),且\(x\times t\)十进制包含\(x\),\(y\)同理。 因为有进位,从低位向高位dp。 设\(f[T][0/1][0/1][i][j][0/1][0/1]\)表示处理到第T位,在当前这些为中\(x\times t\)是否大于\(n\),\(y\times t\)是否大于\(n\),…

网络补充

1. 网卡配置(ip,dns)目标:修改网卡的名字为eth0. 修改网卡配置文件,ip,dns,网关,子网掩码.(物理机,虚拟机(私有云)) 公有云自动获取即可,服务器数量巨大自动获取.1.1 网卡命名 结论: 工作有需求的时候再去修改. 做好记录,后面使用的时候参考即可. # 网卡命名规则: ens33 ensxxx…

在idea中使用mysql失败

在idea中测试mysql显示失败idea方面视图 - 工具窗口 - 数据库 或者右边有图标直接点开新建 - 数据源 - mysql名称 - 用户(root) - 密码 - 测试连接如果测试连接有切换相关提示直接点击, 如果出绿色对勾就成功了 到这里本可以结束了, 但是我最开始做的时候这个流程没有成功 以防…

Pyhton调用R语言rpy2包概要

随着深度学习、大数据和AI的发展,Python的热度持续上升,引发了关于选择Python还是R的讨论。作为数据分析工具,两者各有优缺点。在特定领域,如生态学,R仍被广泛应用,而Python则更多用于日常办公自动化,如批量处理文档和Excel。由于数据处理占用了我们大量时间,很多人希望…

自动驾驶运动规划学习_碰撞检测算法_GJK

自动驾驶运动规划学习:碰撞检测算法:GJK Gilbert–Johnson–Keerthi(GJK)算法,是一种用于检测两个凸集是否重叠的高效算法,并且可以得到两个凸集的最小距离.1.4.1 GJK算法原理1.4.1.1 闵可夫斯基差(Minkowski Difference)1.4.1.3 凸性 在二维空间中,如果一个凸集包含原点,…

设计模式之——代理模式

代理模式 前言: 我们一般在租房子时会去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做;再比如我们打官司需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法;再比如在淘宝上面买东西,你使用支付宝平台…

一文搞定WeakHashMap

写在前面 在缓存场景下,由于内存是有限的,不能缓存所有对象,因此就需要一定的删除机制,淘汰掉一些对象。这个时候可能很快就想到了各种Cache数据过期策略,目前也有一些优秀的包提供了功能丰富的Cache,比如Google的Guava Cache,它支持数据定期过期、LRU、LFU等策略,但它…

P2710 数列/P2042 [NOI2005] 维护数列

题意(以 P2710 为例)思路 使用 FHQ-Treap 进行求解,清晰明了。对于 insert,先将要插入的数建成一棵树,然后将这棵树放入 FHQ-Treap 中。 对于 delete,将要删除的树分离出来,然后把剩下的部分合并即可,将删除的树的树根丢到废弃节点的栈中以备以后使用(节约空间,不然 …

扩展分析C语言单双引号、反斜杠与注释

目录注释奇怪的注释C风格的注释无法嵌套一些特殊的注释注释的规则建议反斜杠\反斜杠有续行的作用,但要注意续行后不能添加空格回车也能起到换行的作用,那续行符的意义在哪?反斜杠的转义功能单引号和双引号字面值,字符串,字符,字符变量的大小为什么sizeof(1)的大小是4 ?char…

扩展分析单双引号、反斜杠与注释

目录注释奇怪的注释C风格的注释无法嵌套一些特殊的注释注释的规则建议反斜杠\反斜杠有续行的作用,但要注意续行后不能添加空格回车也能起到换行的作用,那续行符的意义在哪?反斜杠的转义功能单引号和双引号字面值,字符串,字符,字符变量的大小为什么sizeof(1)的大小是4 ?char…

C----函数递归之反汇编

环境 win10 vc6.0 debug 代码 关于求阶层问题:n!=n(n-1)!;(n-1)! = (n-1)(n-2)! 例如5!=5(4)! 4!=43! 3!=32! 2!=21 函数递归的出口是1,所以函数递归最重要的条件是去寻找递归的出口 int fun(int i) {int sum = 0;if (i == 1){return 1;}else{sum = i*fun(i-1);}return sum …

地平线占用预测 FlashOcc 参考算法-V1.0

1.简介 3D Occupancy Networks 的基本思路是将三维空间划分成体素网格,并对每个网格进行各类感知任务的预测。目前以网格为中心的方法能够预测每个网格单元的占用率、语义类别、未来运动位移和实例信息。3D occupancy 可以对道路障碍物进行更细粒度的划分,同时获取更精确的占…