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 04 Python
Python学习入门之区块链详解
Jul 25 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
python实现将excel文件转化成CSV格式
Mar 22 Python
python基础教程项目四之新闻聚合
Apr 02 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
python opencv读mp4视频的实例
Dec 07 Python
一文了解Python并发编程的工程实现方法
May 31 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
基于Python实现简单学生管理系统
Jul 24 Python
怎么解决pycharm license Acti的方法
Oct 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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php 异常处理实现代码
2009/03/10 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python获取本地计算机名字的方法
2015/04/29 Python
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Python的Django框架下管理站点的基本方法
2015/07/17 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
餐饮管理自我介绍信
2014/01/15 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
专项法律服务方案
2014/06/11 职场文书
实习证明格式范文
2014/10/14 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
禁毒主题班会教案
2015/08/14 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android
postgresql中如何执行sql文件
2023/05/08 PostgreSQL