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多线程编程(一):threading模块综述
Apr 05 Python
python目录与文件名操作例子
Aug 28 Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
python字符串常用方法
Jun 14 Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 Python
Python发送邮件功能示例【使用QQ邮箱】
Dec 04 Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
Jul 13 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
Python基础详解之邮件处理
Apr 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
javascript:json数据的页面绑定示例代码
2014/01/26 Javascript
jQuery+html5实现div弹出层并遮罩背景
2015/04/15 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
python 文件与目录操作
2008/12/24 Python
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
python中返回矩阵的行列方法
2018/04/04 Python
django使用admin站点上传图片的实例
2019/07/28 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
基于python实现对文件进行切分行
2020/04/26 Python
纽约海:Sea New York
2018/11/04 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
实习指导老师评语
2014/04/26 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
迎新生欢迎词2015
2015/07/16 职场文书