python3默认的代码编码是什么-Python3 到底什么是字符编码

我之前老是有这种感觉, 就是明明已经看过很多关于字符编码的资料了, 感觉字符编码相关的知识点不难理解, 觉得自己已经把字符编码给弄懂了, 但当别人问我到底什么是字符编码, Unicode是什么啊, UTF-8又是什么的时候, 我又结结巴巴的说不清楚, 或者只能给个含糊不清的回答, 老是把相关的知识点给弄混. 所以这篇博客, 就是要把字符编码给真正的搞懂, 把相关的知识点梳理清楚.

到底什么是字! 符! 编! 码?!!!

我们所理解的"字符编码(名词)"包含两个部分:

1.字符集

2.编码规则

字符集, 做了什么事情呢? 其实就是给一个字符指定一个数字编号,

就像我们每个人都会有一个身份证号一样, 通过一个身份证号可以对应某一个人,

那我们通过数字编号, 就可以对应到某个具体的字符了

所以, 简单来说, 字符集就相当于一个大的数据库, 这个数据库中包含了两个字段(列): 字符, 和字符对应的编号

+------+----------+

| 字符 | 编号 |

+------+----------+

| a | 97 |

+------+----------+

| b | 98 |

+------+----------+

编码规则, 就是如何对"字符的编号"进行编码的一种规则, 比如我们现在要将字母 "a" 保存到硬盘中,

"a"对应的编号是97, 所以我们只要保存97就行了, 按照ASCII的编码规则, 使用8位二进制数(第1位二进制为0)来进行编码,

97在经过编码后的存储格式就为01100001

为什么要有字符编码?

归根结底, 计算机只认识0和1(二进制), 不是0和1的数字, 我们可以通过位数转换, 转换成二进制

那对于字符, 计算机要怎么识别呢?

将每个字符都指定一个数字编号(字符集), 再将数字编号转为二进制(编码规则), 这样计算机就能识别了

Unicode与UTF-8

首先, Unicode也是包含两个部分: 字符集+编码规则

你可以将Unicode字符集理解为是包含了全世界大多数语言字符与字符编号的超大数据库

而UTF-8就是Unicode的一种编码规则, 除了UTF-8, 还有UTF-16、UTF-32等编码规则

UTF-32: 不管你的编号是多少, 即使是1, 我都给你转为用32位的二进制: 00000000 00000000 00000000 00000001

UTF-16: 能转为16位就转为16位, 16位不够就转为32位

UTF-8: 能转为8位就转8位, 8位不够就转16位, 16位不够就转24位, 24位不够转32位

Python2和Python3中的字符编码

python2默认字符编码是ASCII, 当你用python2的解释器去运行你写好的py2代码(硬盘中),

解释器会用ASCII的编码规则去读取, 由于ACSII编码不支持中文,

所以我们一般在py2代码首行: #encoding: utf-8来指定字符编码规则为utf-8

python3默认的字符编码是Unicode, 当你用python3的解释器去执行你写好的py3代码(硬盘中),

解释器会用UTF-8编码规则来读取

Python2和Python3中的字符串

python2中的字符串的str和unicode类型

name = "bigb" (就是py3中的bytes类型)

name = u"bigb" (就是py3中的str类型)

python3中的字符串的str和bytes类型

name = "bigb"

name = b"bigb"

注:

只是对相关概念做了简单阐述, 目的是理清字符编码的相关知识点, 如果对字符编码有深入了解的需求, 请自行查阅相关资料

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

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

相关文章

matlab生成有向网络,matlab ode45和矩阵生成有向网络图

Matlab中解常微分方程的ode45ode是专门用于解微分方程的功能函数,他有ode23,ode45,ode23s等等,采用的是Runge-Kutta算法。ode45表示采用四阶,五阶runge-kutta单步算法,截断误差为(Δx)^3。解决的是Nonstiff(非刚性)的常微分方程.是解决数值解…

一篇文章带你分清楚JWT,JWS与JWE

随着移动互联网的兴起,传统基于session/cookie的web网站认证方式转变为了基于OAuth2等开放授权协议的单点登录模式(SSO),相应的基于服务器session浏览器cookie的Auth手段也发生了转变,Json Web Token出现成为了当前的热…

VMware linux 在2.4.20-8 中编译2.6.15.5 内核

软件准备: gcc-3.2.2-5.i386.rpm :用来编译 ncurses-5.6.tar.gz:用来配合make menuconfig 命令配置内核 bison-2.4.tar.gz :语法解析器 flex-2.5.35.tar.bz2 :词法解析器 m4-1.4.9.tar.gz: modutils-2.4.…

这五大基础原理,总是牛逼的无话可说

▲ 点击查看关于这几年很火的STEM教育理念,相信大家早就不陌生了。之前小木推荐读的这类读物,一般都是加上艺术(ART)的STEAM的5大学科。但是最近小木发现了这套以4大主要学科为主的《英国儿童经典STEM丛书》,不但有艺术…

ymPrompt.js消息提示组件

详细说明&#xff1a; http://www.ajaxbbs.net/test/ymPrompt4.0/demo.html 1、在页面中引入ymPrompt.js。如&#xff1a;<script type"text/javascript" src"ymPrompt.js"></script> 2、在页面中引入对应的皮肤文件的CSS&#xff0c;如&…

androidstudio学习总结_Android 开发工程师自述:2年的开发,我总结了7条经验

全文共3547字&#xff0c;预计学习时长11分钟“纸上得来终觉浅&#xff0c;绝知此事要躬行。”“没有调查就没有发言权。”“实践出真知。”古今中外&#xff0c;无数名言警句都告诉我们实际去做一件事的重要性。笔者从最初对安卓开发萌生兴趣到现在已有两年之久了&#xff0c;…

php抓取统计局区划代码,抓取国家统计局的代码和名称,爬取,区域,划分,及

from bs4 import BeautifulSoupimport pandas as pdimport requestsheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36}获取一级代码、名称、下一级链接通过设置参数originUrl来调…

XMPP聊天之Openfire 的安装和配置---Mac OS

2019独角兽企业重金招聘Python工程师标准>>> 一、下载并安装openfire 1、下载最新的openfire安装文件 官方下载站点&#xff1a;http://www.igniterealtime.org/downloads/index.jsp#openfire openfire是服务器&#xff0c;下面还有一个spark&#xff0c;这个是一…

Open Flash Chart 初体验

今天项目中要用到图表统计&#xff0c;原来用的是Dundas 但效果不怎么好 后来发现Open Flash Chart不错 而且是结合着Flash 比较动态 可到官方下载查看http://teethgrinder.co.uk/open-flash-chart/而且是很多语言都支持的 虽然有专门语言的&#xff0c;但我还是喜欢使用原生…

如何用C#在Excel中生成图表?

如何用C&#xff03;在Excel中生成图表&#xff1f;exc.Charts.Add(oMissing,oMissing,1,oMissing); exc.ActiveChart.ChartTypeExcel.XlChartType.xlColumnClustered; exc.ActiveChart.SetSourceData(worksheet.get_Range("A1","B10"),Excel.XlRow…

物理学十大著名经典实验!你知道几个?

科学实验是物理学发展的基础&#xff0c;又是检验物理学理论的惟一手段&#xff0c;特别是现代物理学的发展&#xff0c;更和实验有着密切的联系。现代实验技术的发展&#xff0c;不断地揭示和发现各种新的物理现象&#xff0c;日益加深人们对客观世界规律的正确认识&#xff0…

5码默认版块_5个小众的生活学习类的宝藏App

今天分享 5 个宝藏 App &#xff0c;每一个都是小众冷门&#xff0c;每一个都是自己用心挑选&#xff0c;相信可以让你眼前一亮。所有 App 下载方法文章末尾提供。1 卡片日记卡片日记是一个颜值极高的卡片日记软件&#xff0c;它备受好评&#xff0c;可以说你用过就知道好用&am…

在 .NET 中加载椭圆曲线 (EC) 密钥

在 .NET 中加载椭圆曲线 (EC) 密钥本文将讨论在.NET 中解析和加载EC 密钥的不同方式。在本文中&#xff0c;您将了解 EC 密钥的构成&#xff0c;然后了解如何以四种不同的方式使用这些知识ECDsa在 .NET 中加载或创建对象。到本文结束时&#xff0c;您应该能够加载 EC 密钥&…

线性跟驰模型 matlab,Bierley非线性跟驰模型特性仿真分析

第 28卷第 4期 2014年 8月 黑 龙 江 工 程 学 院 学 报 Journal of Heilongjiang Institute of Technology VoL 28&#xff0c;NO&#xff0e;4 Aug&#xff0e;&#xff0e;2014 Bierley非线性跟驰模 型特性仿真分析 李全艳&#xff0c;崔 琳&#xff0c;詹晓松 (黑龙江工程学…

MDT部署中命令行脚本的使用。

参考&#xff1a;http://blogs.technet.com/b/deploymentguys/archive/2010/07/07/using-command-shell-scripts-with-mdt.aspx OK… I’ll admit it, I like to write Command Shell (CMD) scripts when I can. For me it’s like putting on an old broken-in pair of sneak…

CSS/DIV网页设计视频教程目录【转】

CSS/DIV网页设计视频教程目录 欢迎您来到前沿视频教室&#xff0c;下面列出的是CSS/DIV网页设计视频教程列表。这组视频教程是配合《精通CSSDIV网页样式与布局》图书制作的&#xff0c;每一课对应于图书中的每一章。 我们还会不断地推出相关的课程&#xff0c; 如果您有兴趣&am…

世界上最伟大的十大公式

▲ 点击查看英国科学期刊《物理世界》曾让读者投票评选了“最伟大的公式”&#xff0c;最终榜上有名的十个公式既有无人不知的112&#xff0c;又有著名的Emc^2&#xff1b;既有简单的-圆周公式&#xff0c;又有复杂的欧拉公式……这些公式不仅仅是数学家和物理学家的智慧结晶&a…

区块链浏览器_全球首款区块链浏览器是啥名堂?傲游6首发体验

[PConline 应用]沉寂多年的傲游浏览器终于准备发布大版本更新了&#xff0c;这次为大家带来的是傲游浏览器6&#xff0c;一个被官方称为“世界第一个区块链浏览器”的新版本&#xff0c;那么&#xff0c;有何特色呢&#xff1f;我们一起来看看吧。傲游浏览器6(后简称傲游6)在安…

ASP.NET Core官方文档+源码,这样学效率高10倍!

.NET Framework停更一年了&#xff0c;学习.NET Core跨平台是大势所趋。如何快速学习ASP.NET Core&#xff1f;在我看来&#xff0c;先看微软ASP.NET Core5.0官方中文文档&#xff0c;再大致读一遍源码&#xff0c;最后结合一些场景做些扩展封装&#xff0c;就可以很轻松的驾驭…

WPF 2D绘图(2)Geometry

Shape是对Geometry的一种封装,Shape本质上还是通过绘制Geometry的形状,然后以填充笔刷来呈现效果 如Rectangle <Path Stroke"Black" StrokeThickness"1" Fill"#CCCCFF"><Path.Data><RectangleGeometry Rect"30,55 100 30&qu…