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程序员开发中常犯的10个错误
Jul 07 Python
利用Python操作消息队列RabbitMQ的方法教程
Jul 19 Python
python matplotlib坐标轴设置的方法
Dec 05 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
python 编写简单网页服务器的实例
Jun 01 Python
python实现倒计时小工具
Jul 29 Python
django 单表操作实例详解
Jul 30 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
Python-for循环的内部机制
Jun 12 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 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中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
Javascript 严格模式use strict详解
2017/09/16 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
python虚拟环境完美部署教程
2019/08/06 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
jupyter 导入csv文件方式
2020/04/21 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
Hotels.com印度:酒店预订
2019/05/11 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
精神文明建设标语
2014/06/16 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
超强台风观后感
2015/06/09 职场文书
证婚人致辞精选
2015/07/28 职场文书
公司转让协议书
2016/03/19 职场文书
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python