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中的二维数组的操作方法
May 02 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
Python查找文件中包含中文的行方法
Dec 19 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
正则给header的冒号两边参数添加单引号(Python请求用)
Aug 09 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
python 动态调用函数实例解析
Oct 21 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
python异常处理try except过程解析
Feb 03 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
flask项目集成swagger的方法
Dec 09 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
实现树状结构的两种方法
2006/10/09 PHP
php开发文档 会员收费1期
2012/08/14 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
JavaScript 加号(+)运算符号
2009/12/06 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
js中判断控件是否存在
2010/08/25 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
webpack打包js的方法
2018/03/12 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
easy_install python包安装管理工具介绍
2013/02/10 Python
分享一个常用的Python模拟登陆类
2015/03/29 Python
python中实现k-means聚类算法详解
2017/11/11 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
python用户评论标签匹配的解决方法
2018/05/31 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
Python3模拟登录操作实例分析
2019/03/12 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
老师给学生的表扬信
2014/01/17 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
运动会加油稿20字
2014/11/15 职场文书