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 相关文章推荐
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 Python
Python合并两个字典的常用方法与效率比较
Jun 17 Python
Python实现屏幕截图的代码及函数详解
Oct 01 Python
Python解惑之True和False详解
Apr 24 Python
python基础教程项目三之万能的XML
Apr 02 Python
python3实现zabbix告警推送钉钉的示例
Feb 20 Python
django+echart数据动态显示的例子
Aug 12 Python
Python实现非正太分布的异常值检测方式
Dec 09 Python
Python Django view 两种return的实现方式
Mar 16 Python
Python实现爬取并分析电商评论
Jun 19 Python
django创建css文件夹的具体方法
Jul 31 Python
Python 数据可视化神器Pyecharts绘制图像练习
Feb 28 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
国内php原创论坛
2006/10/09 PHP
自动分页的不完整解决方案
2007/01/12 PHP
PHP无敌近乎加密方式!
2010/07/17 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
JavaScript中获取元素索引的函数
2010/09/10 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python使用cookie库操保存cookie详解
2014/03/03 Python
跟老齐学Python之dict()的操作方法
2014/09/24 Python
python基于phantomjs实现导入图片
2016/05/13 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
python 使用shutil复制图片的例子
2019/12/13 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
python中取绝对值简单方法总结
2020/07/24 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
市场部管理制度
2014/02/02 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
招标承诺书
2014/08/30 职场文书
赔偿协议书
2015/01/27 职场文书
监理中标通知书
2015/04/16 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python