编码的发展历史

编码的发展历史

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.mfbz.cn/a/177677.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【python基础】python可变序列与不可变序列

文章目录 前言一、序列类型定义二、对序列类型的切片操作三、使用 与 * 对序进行操作四、增量赋值 和 * 前言 本文主要讲可变序列与不可变序列一些简单的应用。 一、序列类型定义 按序列能否被修改分为:可变序列与不可变序列。 可变序列:可以进行增、…

短期风速预测|LSTM|ELM|批处理(matlab代码)

1主要内容 该程序是预测类的基础性代码,程序对河北某地区的气象数据进行详细统计,程序最终得到pm2.5的预测结果,通过更改数据很容易得到风速预测结果。程序主要分为三部分,分别是基于LSTM算法、基于ELM算法和基于LSTM和批处理组合…

vivado产生报告阅读分析15-时序报告11

Report Clock Domain Crossings “ Clock Domain Crossings (CDC) ” ( 时钟域交汇 ) 报告可对设计中的时钟域交汇执行结构分析。此信息可用于识别潜在不安全的 CDC , 此类 CDC 可能导致亚稳态或数据一致性问题。虽然 CDC 报告与“ Clock …

2023年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题是由安全生产模拟考试一点通提供,危险化学品经营单位主要负责人证模拟考试题库是根据危险化学品经营单位主…

LongAccumulator

原子操作之LongAccumulator 和LongAdder的区别在于,LongAdder是在Cell里面只能做加减操作,不能乘除,而LongAccumulator就可以定义乘除操作。原理和LongAdder都是一样的,一个Base和一个Cells数组。 原文跳转地址

基于docker实现JMeter分布式压测

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

prometheus热更新失败failed to reload config

一、问题描述 k8s部署的prometheus服务在请求热更新时报错: failed to reload config: one or more errors occurred while applying the new configuration (--config.file"/etc/prom/config/file/prometheus.yml")请求命令:curl -X POST http://monitor-cp-prom:…

【Delphi】开发IOS 程序,TLabel 中英文字对齐(水平),一行代码解决显示对齐问题!

目录 一、问题现象: 二、解决方案(一行代码解决ios对齐问题): 三、解决后效果: 四、后记: 一、问题现象: 在用 Delphi 开发ios程序时,使用TLabel控件显示,会出现中英…

Epub书籍阅读工具

Epub书籍阅读工具 前言WIndows总结Neat ReaderAquile ReaderWPS Android总结Neat Reader掌阅 前言 Epub文件为电子书文件格式,此格式的电子书相比txt书籍,增加了目录跳转功能,并可以显示图片。本文介绍WIndows和Android端的epub书籍阅读工具…

如何做好项目管理?年薪百万项目大佬一直在用这11张图

大家好,我是老原。 日常工作中,我们会遇到各种大大小小的工作项目,如何能让项目保质保量的完成,是我们项目经理的目标。 项目管理的流程可以说是由一系列的子过程组成的,它是一个循序渐进的过程,所以不能…

ros2不同机器通讯时IP设置

看到这就是不同机器的IP地址,为了避免在路由器为不同的机器使用DHCP分配到上面的地址,可以设置DHCP分配的范围:(我的路由器是如下设置的,一般路由器型号都不一样,自己找一下) 防火墙设置-----&…

langchain 部署组件-LangServe

原文:🦜️🏓 LangServe | 🦜️🔗 Langchain LangServe 🚩 We will be releasing a hosted version of LangServe for one-click deployments of LangChain applications. Sign up here to get on the wa…

Bracket Sequence ——卡特兰数

平衡括号序列是一个仅由括号"("和")"组成的字符串。 一天,卡罗尔问贝拉长度为2N(N对括号)的平衡括号序列的数量。作为心算大师,她立刻算出了答案。所以Carol问了一个更难的问题:长度为2N&#xff…

易货:一种新型的商业模式

随着经济的发展和社会的进步,人们对于交易的需求和方式也在不断变化。传统的商业模式已经无法满足人们对于多元化、个性化、高效的需求。在这样的背景下,易货模式逐渐走进人们的视野,成为一种新型的商业模式。 易货模式是一种以物换物的交易方…

Linux超简单部署个人博客

1 安装halo 1.1 切换到超级用户 sudo -i 1.2 新建halo文件夹 mkdir ~/halo && cd ~/halo 1.3 编辑docker-compose.yml文件 vim ~/halo/docker-compose.yml 英文输入法下,按 i version: "3"services:halo:image: halohub/halo:2.10container_…

xss-labs靶场6-10关

文章目录 前言一、靶场6-10关1、关卡62、关卡73、关卡84、关卡95、关卡10 总结 前言 此文章只用于学习和反思巩固xss攻击知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!! …

新手必看!!附源码!!STM32通用定时器输出PWM

一、什么是PWM? PWM(脉冲宽度调制)是一种用于控制电子设备的技术。它通过调整信号的脉冲宽度来控制电压的平均值。PWM常用于调节电机速度、控制LED亮度、产生模拟信号等应用。 二、PWM的原理 PWM的基本原理是通过以一定频率产生的脉冲信号&#xff0…

Godot

前言 为什么要研究开源引擎 主要原因有: 可以享受“信创”政策的红利,非常有利于承接政府项目。中美脱钩背景下,国家提出了“信创”政策。这个政策的核心就是,核心技术上自主可控。涉及的产业包括:芯片、操作系统、数据…
最新文章