python中的编码格式

news2025/7/5 1:38:55

在这里插入图片描述

1- 字符集和编码

1) 初代编码 – ASCII

1- 物理机与电脑的交互:物理机中有个组件叫二极管, 可以通过电流通过二极管显示的高电平和低电平来记录信号。
2- 二极管的高电平和低电平则被计算机解读为0 和 1
3- 多个0和1拼接起来成为了二进制数据
4- 为了方便人们计算, 后来将二进制转为十进制来进行计算器操作
5- 以上就实现了第一阶段的电脑与硬件的交互
6- 随着计算机的发展, 数学计算已经不满足要求, 我们需要使用到计算机传递信息
7- 类似于摩斯密码, 人们将 0和1 相互排列,一一对应一个字符。 此时就形成了最原始的编码
8- 但是不同机构有自己独特的编码方式, 导致数据只能在系统内部使用, 机构间无法互相读取其编码
9- 为了统一编码方式ASCII出现了。
NOTE: ASCII码共编码了128个字符,由七个0或1组成。 其中编码了包括数字, 字母, 特殊字符 和一些计算机按键。实现了基本的计算机信息交互。为了保险起见当时将ASCII码扩展了一位,即8位字符拼成一个字节。 (1 byte => 8 bit)

2) 现代化编码 – GBK

0- 随着计算机的普及, 编码已经不限于字母。 更多国家的语言需要进行编码
1- 为了统一编码, 有美国推出了一套标准。ANSI
2- ANSI 即声明每个字符由 16bit (2byte)拼接而成。00000000 01111111
3- 中国的第一版编码方式 gb2312编码。(该编码收集了几千个字符进行编码)
4- 后陆续添加字符进编码,形成了后面的gbk编码。 即现在国有使用最普遍的编码方式
5- 以上标准有一个问题。就是每一个国家有自己不同的编码, 当数据在国家与国家之间传递时。编码还是会出现混乱
6- 为了解决这个问题, 国际又退出了一个新的编码方式:Unicode(万国码)。即将全球所有国家的编码全部汇总起来形成一套编码
7- 此时就忽略了一个问题, 内存问题。如果将全球的编码全部收集此时16byte已经不够用了。 此时需要使用32byte去进行编码汇总
8- 那么使用unicode编码,原本1mb的文件会变成4mb。大大增加了文件传输对资源的消耗

3) 优化后的编码 – UTF

为了解决unicode编码浪费资源的问题, 国际又推出了一个新的编码 – utf(一种可变长度的编码方式, 方便数据的传输与存储)
utf编码中比较常用的为 utf-8(最短的字节长度为8)。(英文: 8bit; 欧洲文字:16bit; 中文:24bit)

总结:utf-8为国际编码方式;而gbk为国内编码;所以两者之间无法直接转化

# 1- 编码
str1 = "中文字符"
res1 = str1.encode('gbk')      # 使用 gbk 进行编码
print(res1)     # b'\xd6\xd0\xce\xc4\xd7\xd6\xb7\xfb'

res2 = str1.encode("utf-8")
print(res2)     # b'\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6'

# 2- 解码
byte_str = b'\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6'
res_str1 = byte_str.decode('utf-8')
print(res_str1)     # 中文字符

res_str2 = byte_str.decode('gbk')
print(res_str2)     # UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 2: illegal multibyte sequence

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

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

相关文章

自动化测试框架设计原理详解

一、自动化测试场景 1、测试四象限 并不是所有测试类型都适合自动化。哪些测试更适合自动化?哪些更适合手工测试? 根据Brain Marick提出的测试四象限,我们可以对测试进行归类,将其划分到4个象限中,以解答这些问题,如下图所示。 第一象限:面向技术和指导开发,该象限中…

ActivityPub 笔记

ActivityPub 协议是一个去中心化的社交网络协议,其基于 ActivityStreams 2.0 数据格式。 在 ActivityPub 协议里,一个用户在服务器上的角色为“参与者(actor)”。用户在不同的服务器上的角色为不同的“参与者”。每一名“参与者”…

LSTM和GRU

LSTM和GRU RNN的优缺点 优点: 可以捕获序列之间的关系;共享参数。 缺点: 存在梯度消失和梯度爆炸问题;RNN的训练是一个比较困难的任务;无法处理长序列问题。 LSTM LSTM可以处理长序列问题,同样在之前…

openssl做文件处理(base64,MD5,sha256等)

这次使用openssl,发现openssl不仅可以用来做加密和解密,实际上也可以用来做文件的处理,比如base64转码、解码,文件md5的计算等。实现这些,即可以从命令行去做,也可以通过代码去实现。 1. 命令行操作 1. ba…

【ML特征工程】第 5 章 :分类变量:机器鸡时代的鸡蛋计数

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

想做副业没有方向,这三条告诉你什么是副业思维

怎样副业赚钱?教你几招,掌控自己的固有思维 你了解钱是怎么来的吗?你如果弄不懂这一点,你也是很难赚到钱的。 钱不是苦的,辛苦努力挣的基本都是一点钱。 假如将你的工作时长换为钱,你可以清晰地赚多少钱…

Java并发-线程上下文切换与死锁

理解线程的上下文切换 概述:在多线程编程中,线程个数一般都大于 CPU 个数,而每个 CPU 同一时-刻只能被一个线程使用,为了让用户感觉多个线程是在同时执行的, CPU 资源的分配采用了时间片轮转的策略&#x…

javacc之路0--- 安装与使用

官网: https://javacc.github.io/javacc/ https://github.com/javacc/javacc#getting-started 安装 下载解压 执行: mvn package 将 javacc-7.0.10.jar 重命名为 javacc.jar 并将目录下的scripts文件夹加入到环境变量中。 执行javacc命令验证是否成功…

【Qt 按钮】QPushButton所有函数和样式

【Qt 按钮】QPushButton所有函数和样式一、QSS语句 (界面样式大全)二、 构造函数三、Geometry (获取属性)四、 QFont五、setFont六、text七、setText八、move九、resize十、adjustSize[按钮自动适应文本大小]十一、setFocus十二、…

【附源码】计算机毕业设计JAVA预约健身私教网站

【附源码】计算机毕业设计JAVA预约健身私教网站 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA my…

开发人员为什么要写测试用例?

作为一名开发人员,你可能会发现周围的开发并不太喜欢写测试用例,甚至有些同学根本不写测试用例,认为写测试用例完全是浪费时间,或者是测试用例只是测试的事情。 在开发过程中,往往都是呼啦啦的写完代码,然后…

【负荷预测、电价预测】基于神经网络的负荷预测和价格预测附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

别人熬夜看世界杯 我熬夜改代码 你满意了

2022年卡塔尔世界杯正如火如荼地进行着, 一边是热火朝天的比赛,一边是让人惊掉下巴的爆冷结局, 但正因为这些不确定因素,反倒让世界杯增添了几分魅力和乐趣! 小编在看球赛的过程中,不禁起了联想&#xff…

Django+Vue中文件的上传和下载

场景:上传一个源数据Excel文件,然后根据数据处理生成另外一个Excel文件并支持下载 Django: 1.首先在Django的settings.py文件中增加配置 MEDIA_URL /media/ MEDIA_ROOT os.path.join(BASE_DIR, media)2.项目的urls.py中增加 url(r^medi…

环境主题静态HTML网页作业作品 大学生环保网页设计制作成品 简单DIV CSS布局网站

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

百度智能云与实体经济“双向奔赴”: 一场1+1>2的双赢

实体经济,已经成为检验科技企业潜力的试金石。 在最近的财报季中,各家大厂的财报里“实体经济”都是关键字眼,已经成为各家心照不宣的共同目的地。 当然,条条大路通罗马。每一家的战略思路和打法都不一样。11月22日,…

Centos7下新硬盘的挂载操作

1、查看当前硬盘使用情况 df -h 2、 查看磁盘分配情况 fdisk -l 如图所示 vdb 磁盘 还未被使用,现在开始分配。 3、 磁盘分配 使用m查看详细命令,n添加一块新分区,默认最多只能有四个主分区,但可以通过设置将第…

Web前端开发技术课程大作业,期末考试HTML+CSS+JavaScript电竞游戏介绍网站

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

SpringCloudAlibaba全网最全讲解5️⃣之Feign(建议收藏)

🌈专栏简介 感谢阅读,希望能对你有所帮助,博文若有瑕疵请在评论区留言或在主页个人介绍中添加我私聊我,感谢每一位小伙伴不吝赐教。我是XiaoLin,既会写bug也会唱rap的男孩,这个专栏主要是介绍目前微服务最主流的解决方…

4 款适用于 Windows 的最佳免费 GIS 软件

GIS 代表地理信息系统,用于分析、存储、操作和可视化地图上的地理信息。GIS是一种应用广泛的软件,在农业、天文、考古、建筑、银行、航空等各个领域都有应用。开始这些项目,需要 shapefile。一些网站提供不同国家的免费 shapefile。下载免费 …