编码的发展历史

编码的发展历史

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'

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

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

相关文章

linux服务器安装gitlab

一、安装gitlab sudo yum install curl policycoreutils-python openssh-server openssh-clients sudo systemctl enable sshd sudo systemctl start sshd sudo firewall-cmd --permanent --add-servicehttp curl https://packages.gitlab.com/install/repositories/gitla…

LabVIEW中将SMU信号连接到PXI背板触发线

LabVIEW中将SMU信号连接到PXI背板触发线 本文介绍如何将信号从PXI(e)SMU卡路由到PXI(e)机箱上的背板触发线。该过程涉及使用NI-DCPowerVI将SMU信号导出到PXI_TRIG线上。 在继续操作之前,请确保在开发PC上安装了兼容版…

d3dx9_43.dll缺失怎么办?教你一分钟修复d3dx9_43.dll丢失问题

今天,与大家分享关于“d3dx9_43.dll丢失的5个解决方法”的主题。在我们的日常生活和工作中,我们可能会遇到各种各样的问题,而d3dx9_43.dll丢失就是其中之一。那么,什么是d3dx9_43.dll呢?它为什么会丢失?又该…

【LeetCode刷题-链表】--25.K个一组翻转链表

25.K个一组翻转链表 思路: 把链表节点按照k个一组分组,可以使用一个指针head依次指向每组的头节点,这个指针每次向前移动k步,直至链表结尾,对于每个分组, 先判断它的长度是否大于等于k,若是&am…

什么是Zero-shot(零次学习)

1 Zero-shot介绍 Zero-shot学习(ZSL)是机器学习领域的一种先进方法,它旨在使模型能够识别、分类或理解在训练过程中未见过的类别或概念。这种学习方法对于解决现实世界中常见的长尾分布问题至关重要,即对于一些罕见或未知类别的样…

商务俄语学习,柯桥基础入门教学,千万别小看俄语中的“что”

1、что до (чего) 至于 例: что до меня, то я не могу согласиться 至于我,我不能同意。 А что до зимовки... Ты приедешь в этом году? 说到冬天和过冬…你今年回来吗…

在windows笔记本中安装tensorflow1.13.2版本的gpu环境2

tensorflow1.13.2版本的gpu环境 看python-anacona的安装只需要看1.1部分即可 目录 1.1 Anaconda安装 1.2 tensorflow-gpu安装 1.3 python编译器-pycharm安装 1.1 Anaconda安装 从镜像源处下载anaconda,地址:Index of /anaconda/archive/ | 北京…

PTA-6-45 工厂设计模式-运输工具

题目如下: 工厂类用于根据客户提交的需求生产产品(火车、汽车或拖拉机)。火车类有两个子类属性:车次和节数。拖拉机类有1个子类方法耕地,方法只需简单输出“拖拉机在耕地”。为了简化程序设计,所有…

基于docker实现JMeter分布式压测

为什么需要分布式? 在工作中经常需要对一些关键接口做高QPS的压测,JMeter是由Java 语言开发,没创建一个线程(虚拟用户),JVM默认会为每个线程分配1M的堆栈内存空间。受限于单台试压机的配置很难实现太高的并…

LeetCode59.螺旋矩阵

LeetCode59.螺旋矩阵 1.问题描述2.解题思路3.代码 1.问题描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,…

谈一谈什么是接口测试?怎样做接口测试?

扫盲内容: 1.什么是接口? 2.接口都有哪些类型? 3.接口的本质是什么? 4.什么是接口测试? 5.问什么要做接口测试? 6.怎样做接口测试? 7.接口测测试点是什么? 8.接口测试都要掌…

童装店铺如何通过软文增加客流量

在信息超负载、媒介粉尘化、产品同质化多重因素下,传统营销疲态尽显、日渐式微,很难支撑新环境下品牌和企业的持续增长。聚焦童装行业更是如此,一方面用户迭代速度快,另一方面,新时代父母的育儿观念更加精细化&#xf…

安装pytorch

cuda≤11.6,观察控制面板 观察torch对应cuda版本 https://download.pytorch.org/whl/torch/ 安装cuda11.6.0 CUDA Toolkit Archive | NVIDIA Developer cmd输入nvcc -V 编辑国内镜像源 .condarc anaconda prompt输入 查看环境 conda env list 安装py3.9…

MySQL面试,MySQL事务,MySQL锁,MySQL集群,主从,MySQL分区,分表,InnoDB

文章目录 数据库-MySQLMySQL主从、集群模式简单介绍1、主从模式 Replication2、集群模式3、主从模式部署注意事项 UNION 和 UNION ALL 区别分库分表1.垂直拆分2、水平拆分 MySQL有哪些数据类型1、整数类型**,2、实数类型**,3、字符串类型**,4…

DDoS攻击频发,科普防御DDoS攻击的几大有效方法

谈到目前最凶猛、频率高,且令人深恶痛绝的网络攻击,DDoS攻击无疑能在榜上占有一席之地。各种规模的企业报包括组织机构都可能受到影响,它能使企业宕机数小时以上,给整个互联网造成无数损失。可以说,怎样防御DDoS攻击是…

Vue 定义只读数据 readonly

readonly 让一个响应式数据变为 **深层次的只读数据**。 isReadonly 判断一个数据是不是只读数据。 应用场景&#xff1a;不希望数据被修改时使用。 readonly 深层次只读&#xff1a; <template><h1>reactive数据</h1><p>姓名&#xff1a;{{ info…

嵌入式系统中相关的高质量开源项目

关于GitHub&#xff0c;可能很多人误以为这是互联网人的专属&#xff0c;其实并不是&#xff0c;那上面嵌入式相关的开源项目是有很多的。现分享一些高星开源项目&#xff08;像RT-Thread、AWTK等大家都熟知的就不介绍了&#xff09;&#xff1a;Avem 项目链接&#xff1a; ht…

多功能神器,强劲升级,太极2.x你值得拥有!

嗨&#xff0c;大家好&#xff0c;今天给大家分享一个好用好玩的软件。那就是太极2.x软件&#xff0c;最近在1.0版本上进行了全新升级&#xff0c;升级后的功能更强更稳定&#xff0c;轻度用户使用基本功能就已经足够了&#xff0c;我们一起来看看吧&#xff01; 首页 首页左…

利用叉积计算向量的旋向及折线段的拐向

一、向量叉积 两个向量 u u u、 v v v的叉积写作 u v n ∥ u ∥ ∥ v ∥ s i n θ \mathbf{u \times v n \left \| u \right \| \left \| v \right \| sin\theta } uvn∥u∥∥v∥sinθ 式中&#xff0c; n n n: 与 u u u、 v v v均垂直的单位向量&#xff0c;theta是两向量…

Java 编码

编码: 加密: 通过加密算法和密钥进行 也可通过码表进行加密 对称加密: 缺点:可被截获 元数据---加密算法密钥密文 ----> 解密算法密钥元数据 算法:DES(短 56位),AES(长 128位)破解时间加长 非对称加密: 元数据-加密算法加密密钥 密文 --->加密算法解密密钥元数据 …