字符编码、python2和python3编码的区别
目录
字符编码
文本编辑器存储信息的过程
- 打开编辑器就在内存中打开了一个进程,用编辑器编写的内容存在内存中,断电会丢失。
 - 点击保存,编辑器把内存的数据刷到了硬盘上。
 - 编写.py文件(没有执行时)和编写其他文件没有区别,只是在写一堆字符。
 
python解释器解释python代码的流程
- 第一阶段:python解释器启动,这时相当于启动了一个文本编辑器。
 - 第二阶段:python解释器相当于文本编辑器,打开test.py文件,从硬盘将test.py文件从硬盘读入到内存中(python的解释性决定了解释器只关心文件的内容,不关心文件的后缀)。
 - 第三阶段:python解释器解释执行加载到内存中的test.py代码。在该阶段才会识别python语法,为变量值等开辟存储空间。
 
python解释器与文本编辑器的异同
- 相同点:python具备读取.py文件的功能,这与文本编辑器一样。
 - 不同点:读取文件之后两者的目的不同,文本编辑器将文件读入内存后为了显示和编辑,python解释器是为了执行Python代码,所以会识别代码的语法。
 
不同编码格式存入与读取数据的过程

utf-8编码格式只能和Unicode格式相互转换,不能和其他编码格式转化
乱码的分析
存文件是乱码
用中文的编码格式存储日文等其他国家的文字则会导致存入的二进制位并不对应要存的语言的字符,从而导致存入时就会出现乱码。
读文件时乱码
读文件时如果读取采用的编码格式与文本原来的编码格式不同则会导致出现乱码,如用gbk读取ASCII编码的文件
总结
要想不出现乱码,文件中的字符按什么标准编码,就用什么标准去读取文件(解码)。由于内存中固定使用Unicode编码,我们只能改变存储到硬盘时使用的编码格式。
python2和python3字符编码的区别
python2
python2有两种存储形式,第一种:Unicode;第二种:按coding头选择存储格式,假设python2用utf8存储x='中文',当你print(x)的时候,终端接收gbk的变量x,但是windows终端编码是utf8,会乱码。
python3
python3只有Unicode一种存储变量的形式。Python2中默认使用ascii,Python3中默认使用utf-8,文本编辑器编写的文件默认为gbk编码格式。
字符编码、python2和python3编码的区别的更多相关文章
- python2和python3编码问题
		
欢迎加入python学习交流群 667279387 一.什么是编解码 1.什么是unicode 2.编码方式 二.python中的编解码 1.python2 (1).encode() 和 .decod ...
 - python2和python3编码
		
python2编码 unicode:unicode 你好 u'\u4f60\u597d' | | | | encode('utf8')| |decode('utf8') encode('gbk')| ...
 - 字符编码 + python2和python3的编码区别(day08整理)
		
目录 昨日回顾 二十三.元组内置方法 二十四.散列表 二十五.字典内置方法 二十六.集合内置方法 二十七.深浅拷贝 拷贝 浅拷贝 深拷贝 今日内容 二十八.字符编码 1.文本编辑器存储信息的过程 2. ...
 - 字符编码 python2与python3的区别
		
目录 1. 字符编码 2. 文本编辑器存储信息的过程 3. 编码: 1. 编码的历史 2. gb2312和gbk的区别 3. 编码和解码 4. python解释器 解释代码的流程 1. 读取文本到解释 ...
 - while  运算符    初始编码     python2和python3的区别
		
1.while 循环 2.运算符 3.初始编码 4.python2 和python3的区别 1.while循环: 关键词:while[循环] break[跳出循环] c ...
 - Python2 和 Python3 编码问题
		
基本存储单元 位(bit, b):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位. 字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节. 1B = 8b 各种信息在计算机 ...
 - [python]python2与python3版本的区别
		
python2和python3的区别 区别: print函数 整数相除 Unicode 异常处理 xrange map函数 不支持has_key print函数: Python 2: print是语句 ...
 - python版本坑:md5例子(python2与python3中md5区别)
		
对于一些字符,python2和python3的md5加密出来是不一样的. Python2 和Python3MD5加密 # python2.7 pwd = "xxx" + chr(1 ...
 - Python2和Python3编码的区别
		
Python2 python2中有两种储存变量的形式,第一种:Unicode:第二种:按照coding头来的. 假设python2用utf8存储x='中文',当你print(x)的时候,终端接收gbk ...
 
随机推荐
- spss中如何处理极端值、错误值
			
spss中如何处理极端值.错误值 spss中录入数据以后,第一步不是去分析数据,而是要检验数据是不是有录入错误的,是不是有不合常理的数据,今天我们要做一个描述性统计,进而查看哪些数据是不合理的.下面是 ...
 - Linux安装MySql5.7及配置(yum安装)
			
Linux安装MySql5.7及配置(yum安装) [root@xld ~]# rpm -q centos-release centos-release-7-7.1908.0.el7.centos.x ...
 - TCP/IP协议-1
			
转载资源,链接地址https://www.cnblogs.com/evablogs/p/6709707.html
 - 一个简单的dns服务器
			
options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/srv/app/named& ...
 - CentOS7编译安装sshpass过程
			
环境说明:centos 7 cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 我的sshpass版本 sshpass-1.06. ...
 - Python 内置函数super
			
super()函数是用于调用父类/超类的一个方法 super是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没有问题,但是如果使用多继承,会涉及到查找顺序(MRO),重复调用(钻石继 ...
 - DockerFile与镜像(Image)仓库
			
深入Docker 之 Image: 当我们使用docker pull mysql 这个命令获取镜像的时候,到底他是怎么做的?我们登录官方提供的仓库看一下 https://github.com/dock ...
 - java基础语法详细介绍
			
一.概述 1.java语言概述 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言; java之父---James Goslin ...
 - Luogu P1084 [NOIP2012]疫情控制
			
题目 首先我们二分一下答案. 然后我们用倍增让军队往上跳,最多先跳到根的子节点. 如果当前军队可以到达根节点,那么记录一下它的编号和它到达根节点后还可以走的时间. 并且我们记录根节点的叶子节点上到根节 ...
 - Python 入门之 Python三大器 之  装饰器
			
Python 入门之 Python三大器 之 装饰器 1.开放封闭原则: (1)代码扩展进行开放  任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改.所以我们必须允许代 ...