编码的发展历史

编码的发展历史

ASCII:

ASCII编码使用7位二进制数表示一个字符,范围从0到127。每个字符都有一个唯一的ASCII码值与之对应。例如,大写字母"A"的ASCII码是65,小写字母"a"的ASCII码是97。

ASCII字符集包括英文字母,数字,标点符号,控制字符(回车,换行等等),128个,最初来源于美国。

在这里插入图片描述

ASCII扩充表:

解决欧洲一些国家字符编码问题,扩充为256个字符。

在这里插入图片描述

但是在中国无法使用,英文汉字太多了,后来就出现了GB2312字符集.

GB2312字符集:

GB2312是中国国家标准局于1980年发布的一种字符集,它是对汉字进行编码的标准。GB2312字符集主要包括汉字、英文字母、数字和一些常用符号。

GB2312使用两个字节表示一个汉字字符,(一个字节是8个二进制位的数据单元),其中第一个字节的范围是0xB0-0xF7,第二个字节的范围是0xA1-0xFE。这样的编码方式可以表示7445个汉字字符。

GB2312主要用于简体中文的字符编码,它是早期中国计算机系统中最常用的字符集之一。

print("你".encode("gb2312"))# b'\xc4\xe3'
GBK:

GBK(Guojia Biaozhun Kuozhan)是中国国家标准局于1995年发布的一种字符集,它是对汉字进行编码的扩展字符集。GBK字符集是在GB2312的基础上进行扩展而来,可以表示更多的汉字字符。

GBK使用双字节编码,与GB2312相同,每个字符使用两个字节来表示。GBK字符集包括GB2312中的所有字符,并添加了大量的繁体中文字符、生僻字和其它语种的字符。通过这种方式,GBK可以表示超过21000个汉字和符号。

GBK字符集被广泛应用于简体中文和繁体中文环境中,特别是在早期的计算机系统和中文操作系统中。然而,随着时间的推移和技术的发展,GBK也逐渐被更先进的字符集如GB18030和Unicode所取代,这些字符集能够更好地支持更广泛的字符和语言。

需要注意的是,GBK和GB2312之间的编码兼容性非常高,大多数GB2312编码的字符在GBK中仍然可以正确解析和显示。

print("你".encode('gbk')) # # b'\xc4\xe3'
问题出现:

问题:不能每一个国家都创建一个字符集吧,在进行信息交流的时候就出现了乱码的问题.

Unicode:

Unicode是一种国际标准字符集,旨在为世界上所有的字符提供唯一的标识符。它定义了字符的编码方式,使不同国家和地区的计算机能够交换和处理多语言文本。

Unicode字符集包含了几乎所有的已知字符,包括不同语言的字符、标点符号、数学符号、技术符号、货币符号等。其编码空间非常大,总共可以表示超过1.1百万个字符。

Unicode采用统一的编码方案,即每个字符分配一个唯一的数字标识符,称为码点(code point)。常用的表示方式是使用十六进制表示码点,例如字母"A"的码点是U+0041,汉字"中"的码点是U+4E2D。

为了表示Unicode字符,需要使用不同的编码方案,其中最常见的是UTF-8、UTF-16和UTF-32。这些编码方案根据字符的码点将其转换为不同长度的字节序列,以便在计算机系统中存储和传输。

Unicode的出现解决了以往字符编码标准的局限性,使得不同语言和文化之间的文本处理更加方便和统一。它被广泛应用于现代计算机系统、操作系统、编程语言和互联网标准中,成为国际化文本处理的基础。

UTF-8:

UTF-8(Unicode Transformation Format-8)是一种常用的Unicode字符编码方案之一。它是一种可变长度的字符编码,能够表示Unicode字符集中的所有字符。

UTF-8使用8位(1个字节)作为基本的编码单元,采用了一种变长的编码方式。具体地说,UTF-8根据字符的码点范围将其转换为1至4个字节的字节序列。

UTF-8的优势在于它既能够完全兼容ASCII字符,又能够表示任意Unicode字符,同时保持了文本数据的紧凑性和兼容性。因此,UTF-8成为了互联网上最常用的字符编码方案之一,被广泛应用于网页、电子邮件、数据库存储以及各种文本文件的处理中。

print('你'.encode('utf-8')) #b'\xe4\xbd\xa0'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acmakb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值