Python2和3字符编码的区别知识点整理


Posted in Python onAugust 08, 2019

python解释器运行代码的流程启动python解释器(相当于文本编辑器)打开文件,显示这个字符并检查语法(涉及字符编码, a=1只是一个很普通的字符)解释字符 (涉及字符编码,再去内存空间 生成一个a=1的变量)

python2用的是ascii, python3默认是utf8读取字符

# coding:gbk会告诉python3解释器用gbk编码读取字符

python3(了解)

你看到的其实是unicode

但是终端帮你把这个unicode的0和1做一个转换,从unicode转换成了终端能够识别的编码格式,然后变成中文

# coding:gbk
a = '中文' # 用unicode编码存储了这堆0和1
print(a) # 010101010

假设终端的默认编码是gbk , 认识 unicode编码的变量

假设终端的默认编码是utf8,认识 unicode编码的变量

Python2(了解)

unicode + 指定的coding编码(str类型)

# coding:gbk
a = '中文' # 用gbk编码存储了这堆0和1
a = u'中文' # 用unicode编码存储了这堆0和1
print(a)

终端是一个文本编辑器,会有默认编码.

假设终端的默认编码是gbk , 认识 gbk编码的变量

假设终端的默认编码是utf8, 不认识 gbk编码的变量
Python2和3字符编码的区别知识点整理

总结

代码详情 Python2执行情况 Python3执行情况

代码详情 Python2执行情况 Python3执行情况
# coding:gbk print('中') 终端:utf8 乱码 不乱码
# coding:utf8 print('中') 终端:utf8 不乱码 不乱码
# coding:gbk print(u'中') 终端:utf8 不乱码 不乱码
# coding:utf8 print(u'中') 终端:utf8 不乱码 不乱码

不乱码不乱码

在Python2中如果指定了字符编码,那么内存存取就会按照指定的字符编码去入内存。解释或去执行时就要按照指定了的字符编码去解释,否则就会乱码。 否则可以在定义变量前面加上u,这样变量就会以unicode编码存入内存。

如:

#coding:gbkname = "爸爸"

 

但在Python3中就不会有这样的问题,因为无论你指定了什么字符编码,在内存存取时都会使用Unicode编码去入内存Unicode编码可以和任意的字符编码相互转换,并在读取时按照所需的编码区读取,这样就很好解决了字符编码的问题

以上就是相关的全部内容知识点,感谢大家对三水点靠木的支持。

Python 相关文章推荐
如何运行Python程序的方法
Apr 21 Python
用Python实现一个简单的线程池
Apr 07 Python
构建Python包的五个简单准则简介
Jun 15 Python
python if not in 多条件判断代码
Sep 21 Python
python实现的多线程端口扫描功能示例
Jan 21 Python
python logging日志模块的详解
Oct 29 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
Python中断多重循环的几种方式详解
Feb 10 Python
python-sys.stdout作为默认函数参数的实现
Feb 21 Python
使用Python FastAPI构建Web服务的实现
Jun 08 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
Python编程中类与类的关系详解
Aug 08 #Python
python os.fork() 循环输出方法
Aug 08 #Python
对python中的os.getpid()和os.fork()函数详解
Aug 08 #Python
在Python中os.fork()产生子进程的例子
Aug 08 #Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 #Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 #Python
python批量修改ssh密码的实现
Aug 08 #Python
You might like
调频问题解答
2021/03/01 无线电
SONY SRF-M100的电路分析
2021/03/02 无线电
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
2015/11/09 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
六月份红领巾广播稿
2014/02/03 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
关于观后感的作文
2015/06/18 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android