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

news/2024/9/18 23:12:03/文章来源:https://www.cnblogs.com/luoweifu/p/18416694
  • 1. 字符集与字符编码
    • 1.1. 字符集
    • 1.2. 字符编码
    • 1.3. 两者的关系
  • 2. 字符编码的发展历史
    • 2.1. 第一个阶段 ASCII编码
      • 2.1.1. ASCII
      • 2.1.2. EASCII

1. 字符集与字符编码

1.1. 字符集

字符集(Charcater Set或Charset): 是一个系统支持的所有抽象字符的集合,也就是一系列字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。常见的字符集有:ASCII字符集、GB2312字符集(主要用于处理中文汉字)、GBK字符集(主要用于处理中文汉字)、Unicode字符集等。

1.2. 字符编码

字符编码(Character Encoding): 是一套法则,使用该法则能够对自然语言使用的字符集(如字母表或音节表),与计算机能识别的二进制数字进行配对。即它能在符号集合与数字系统之间建立对应关系,是信息处理的一项基本技术。通常人们用符号集合(一般情况下就是文字)来表达信息,而计算机系统则是以二进制的数字来存储和处理信息的。字符编码就是将符号转换为计算机能识别的二进制编码。

1.3. 两者的关系

一般一个字符集等同于一种编码方式,如ASCII、GB2312、GBK等。一般我们说一种编码都是针对某一特定的字符集。

一个字符集上也可以有多种编码方式,如Unicode字符集有UTF-8、UTF-16、UTF-32等编码方式。所以字符集字符编码是一对一或一对多的关系。

file

一句话表示:

  • 字符集: 是要表达的所有字符的集合。
  • 字符编码: 是将字符集里每一个字符与二进制数据进行一一映射的的规则和机制。

2. 字符编码的发展历史

从计算机字符编码的发展历史来看,大概经历了三个阶段:

  • 第一个阶段: ASCII编码
  • 第二个阶段: 字符编码本地化——ANSI系列编码
  • 第三个阶段: 字符编码国际化——Unicode字符集和Unicode编码

2.1. 第一个阶段 ASCII编码

第一个阶段:ASCII字符集和ASCII编码。

2.1.1. ASCII

计算机最早诞生于美国,刚开始计算机只支持英语(即拉丁字符),其它语言不能够在计算机上存储和显示。ASCII用一个字节(Byte)的7位(bit)表示一个字符,第一位(即最高位)置0,低7位用来编码字符集,共能表达2^7(即128)个字符。

ASCII的这种编码方式即为ASCII编码,ASCII编码的字符集即为ASCII字符集ASCII字符集包含的内容有:26个小英文字母、26个大英文字母、英文标点符号,10个阿拉伯数字、以及非打印的(不能显示)控制符号。

file
图1 ASCII编码表

2.1.2. EASCII

用ASCII码表达英语基本上没什么问题,但是当英语中包含一些外来词(如naïve、café、élite等)时,ASCII码就没有办法表达了,所有重音符号都不得不去掉。

后来为了表示更多的欧洲常用字符又对ASCII进行了扩展,于是有了EASCII(Extended ASCII),EASCII用8位表示一个字符,使它能多表示128个字符,支持了部分西欧字符。

file
图2 扩展ASCII编码表

至此,ASCII + EASCII能表达256(2^8)个字符,基本能满足英语国家和欧洲部分国家的需求。

注意: EASCII码目前几乎不再使用了,很早就被废弃掉了,被更先进的ISO/IEC 8859-N字符编码方案替代了。

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

下回预告:字符编码发展史2 — IOS 8859-N。


大家好,我是陌尘。

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

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

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



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

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

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

相关文章

[JVM]对象创建过程

Java 对象的创建过程 Java对象创建的过程主要分为五个步骤,下面我将详细介绍这五个步骤。 Step1:类加载检查 虚拟机遇到一条new指令时,首先会去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且会检查这个符号引用所指向的类是否已经完成加载、连接和初始化,…

教小模型进行推理

https://arxiv.org/abs/2212.08410 思维链提示在基础层面上是如此成功,以至于它产生了一些被称为 x 链现象的东西。谷歌研究院探索了如何使用 llm 为现有数据集生成 CoT 数据本体,然后如何在 CoT 上微调较小的语言模型。 介绍 众所周知,思维链提示提高了大型语言模型的推理能…

[WesternCTF2018]shrine

打开题目就得到了python代码 import flask import os #导包 app = flask.Flask(__name__) #创建一个flask实例, app.config[FLAG] = os.environ.pop(FLAG) #从操作系统的环境变量中读取名为FLAG的值,并将其存储在Flask的配置中,POP:读取后删除该环境变量@app.route(/) #定义…

MySQL 8.0 Public Key Retrieval is not allowed 错误的解决方法

原文:MySQL 8.0 Public Key Retrieval is not allowed 错误的解决方法 参考:Connection Java - MySQL : Public Key Retrieval is not allowed在使用 MySQL 8.0 时重启应用后提示com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieva…

MobaXterm 密钥生成器

1、MobaXterm 密钥生成器,代码仓库地址: https://gitcode.com/gh_mirrors/mo/MobaXterm-keygen/blob/master/MobaXterm-Keygen.py 2、也可以用我打包好的exe程序,不用安装python环境: https://pan.baidu.com/s/1jo85pQc_kfWhcYmZcc49CQ 提取码:ws10 3、源码:#/usr/bin/e…

Linux引导启动程序(boot)

概述 本章主要描述boot/目录中的三个汇编代码文件,见列表6-1所示。正如在前一章中提到的,这三个文件虽然都是汇编程序,但却使用了两种语法格式。bootsect.s和setup.s是实模式下运行的16位代码程序,采用近似于Intel的汇编语言语法并且需要使用Intel 8086汇编编译器和连接器as86和…

9、const修饰指针

*代表指针,这样有助于记忆和区别这三种

day1闯关作业小结[linux基础知识]

完成SSH连接与端口映射并运行hello_world.py 1.进入InternStudio https://studio.intern-ai.org.cn/, 创建个人开发机2.使用密码进行SSH远程连接并进行端口映射3.运行hello_world.py

白云龙期货投资-第三讲

反转形态**头肩底(顶) 双底(顶) 三重底(顶) 圆弧底(顶)**持续形态**三角形 旗形 楔行 扩散三角形 收缩三角形**K线形态(反转形态,持续形态) 反转形态 头肩底(顶) 双底(顶) 三重底(顶) 圆弧底(顶) 持续形态 三角形 旗形 楔行 扩散三角形 收缩三角形 头肩顶头肩底双底(双顶)下…

java的方法和数组

什么是方法呢? 就类似c语言的函数 返回类型 方法名 形式参数列表 方法名最好使用小驼峰的形式,在java中方法不可以嵌套使用, 方法的调用: 就是在main方法里面写上调用的方法名加上需要传输的值,创建一个和方…

mongo集群同步数据异常,手动同步节点副本数据

转载请注明出处: 数据同步方案当副本集节点的复制进程落后太多,以至于主节点覆盖了该节点尚未复制的 oplog 条目时,副本集节点就会变为“陈旧”。节点跟不上,就会变得“陈旧”。出现这种情况时,必须删除副本集节点的数据,然后执行初始同步,从而完全重新同步该节点。 Mon…