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实现多线程抓取妹子图
Aug 08 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
Python 类的特殊成员解析
Jun 20 Python
python 构造三维全零数组的方法
Nov 12 Python
Face++ API实现手势识别系统设计
Nov 21 Python
使用python判断你是青少年还是老年人
Nov 29 Python
python调用支付宝支付接口流程
Aug 15 Python
pytorch 指定gpu训练与多gpu并行训练示例
Dec 31 Python
Python中的特殊方法以及应用详解
Sep 20 Python
OpenCV灰度化之后图片为绿色的解决
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 preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
ExtJS 入门
2010/10/29 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
在Python的Django框架中编写错误提示页面
2015/07/22 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
五十岁生日宴会答谢词
2014/01/15 职场文书
设计师求职信模板
2014/05/06 职场文书
员工安全承诺书
2014/05/22 职场文书
个人党性锻炼总结
2015/03/05 职场文书
六五普法学习心得体会
2016/01/21 职场文书
乔迁新居祝福语
2019/11/04 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers