编码的发展历史

编码的发展历史

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.hqwc.cn/news/207353.html

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

相关文章

2023年【起重机械指挥】考试题及起重机械指挥找解析

题库来源:安全生产模拟考试一点通公众号小程序 起重机械指挥考试题考前必练!安全生产模拟考试一点通每个月更新起重机械指挥找解析题目及答案!多做几遍,其实通过起重机械指挥作业考试题库很简单。 1、【多选题】按照事故造成的人…

Java基础(程序控制结构篇)

Java的程序控制结构与C语言一致,分为顺序结构、选择结构(分支结构)和循环结构三种。 一、顺序结构 如果程序不包含选择结构或是循环结构,那么程序中的语句就是顺序的逐条执行,这就是顺序结构。 import java.util.Sc…

拒绝“信息茧房”,不做“井底之蛙”

前言 在信息爆炸的时代,我们每天都会被各种各样的信息包围着。这些信息来自各种渠道,如社交媒体、新闻媒体、搜索引擎、推荐系统等等。在算法和选择下,社交平台、购物平台帮大家过滤掉不熟悉、不喜欢、不感兴趣的内容,只推荐想看…

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…

uni-app 使用uni.getLocation获取经纬度配合腾讯地图api获取当前地址

前言 最近在开发中需要根据经纬度获取当前位置信息,传递给后端,用来回显显示当前位置 查阅uni-app文档,发现uni.getLocation () 可以获取到经纬度,但是在小程序环境没有地址信息 思考怎么把经纬度换成地址,如果经纬度…

使用gin 代理 web网页

问web项目的代理,业界常用的方案是nginx做代理,这个是网上最多资料的。 因为我需要做自己的流量转发,也就是所有访问都要经过我的一个流量分发微服务,这和nginx作用冲突了。如果再加个nginx来做第一层方向代理和网页的静态资源代…

Axios使用方式

ajax是JQUERY封装的XMLHttprequest用来发送http请求 Axios简单点说它就是一个js库,支持ajax请求,发送axios请求功能更加丰富,丰富在哪不知道 1.npm使用方式 vue项目中 npm install axios 2.cdn方式 <script src"https://unpkg.com/axios/dist/axios.min.js">…

层次分析法--可以帮助你做决策的简单算法

作用 层次分析法是一个多指标的评价算法&#xff0c;主要用来在做决策时&#xff0c;给目标的多个影响因子做权重评分。特别是那些需要主观决策的、或者需要用经验判断的决策方案&#xff0c;例如&#xff1a; 买房子&#xff08;主观决策&#xff09;选择旅游地&#xff08;…

【C++】泛型编程 ⑫ ( 类模板 static 关键字 | 类模板 static 静态成员 | 类模板使用流程 )

文章目录 一、类模板使用流程1、类模板 定义流程2、类模板 使用3、类模板 函数 外部实现 二、类模板 static 关键字1、类模板 static 静态成员2、类模板 static 关键字 用法3、完整代码示例 将 类模板 函数声明 与 函数实现 分开进行编码 , 有 三种 方式 : 类模板 的 函数声明…

传统企业如何实现数字化转型?如何加快企业数字化转型?

科技的发展给社会带来了各种变革&#xff0c;技术日新月异&#xff0c;很多传统的东西都被大众抛之脑后&#xff0c;在这个以技术和数据运营为导向的数字化时代&#xff0c;传统企业想要保持足够的核心竞争力&#xff0c;就必须跟上时代的步伐&#xff0c;进行企业数字化转型&a…

智能监控如何最大化保障生产工人权益,助力电焊车间智能化?

电焊车间加装监控可以加强对电焊车间的生产过程监控&#xff0c;保障员工的生产工作安全&#xff0c;提高工作效率&#xff0c;降低生产成本。但是传统的监控只能单一的去“看”&#xff0c;并不能最大化发挥视频监控的作用&#xff0c;而智能视频监控就不一样。它可以有效提高…

LeetCode59.螺旋矩阵

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