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中实现三目运算的方法
Jun 21 Python
python中常用的九种预处理方法分享
Sep 11 Python
Python实现的十进制小数与二进制小数相互转换功能
Oct 12 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
python画图系列之个性化显示x轴区段文字的实例
Dec 13 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
python 将dicom图片转换成jpg图片的实例
Jan 13 Python
python数据分析:关键字提取方式
Feb 24 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
Python 高效编程技巧分享
Sep 10 Python
Python的scikit-image模块实例讲解
Dec 30 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 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之数据库操作详解及乱码解决!
2007/01/02 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
跟老齐学Python之坑爹的字符编码
2014/09/28 Python
收集的几个Python小技巧分享
2014/11/22 Python
python魔法方法-自定义序列详解
2016/07/21 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
在python中修改.properties文件的操作
2020/04/08 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
软件工程专业推荐信
2013/10/28 职场文书
高中自我鉴定范文
2013/11/03 职场文书
人事专员的职责
2014/02/26 职场文书
《赶海》教学反思
2014/04/20 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
利用Python判断你的密码难度等级
2021/06/02 Python