Python2和3字符编码的区别知识点整理

 更新时间:2019年08月08日 16:25:10   作者:豆瓣酱瓣豆  
在本篇文章中小编给各位分享的是关于Python2和3字符编码的区别知识点,有需要的朋友们可以学习下。

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执行情况 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 json序列化解读

    Python json序列化解读

    这篇文章主要介绍了Python json序列化解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • python之当你发现QTimer不能用时的解决方法

    python之当你发现QTimer不能用时的解决方法

    今天小编就为大家分享一篇python之当你发现QTimer不能用时的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 详谈Python3 操作系统与路径 模块(os / os.path / pathlib)

    详谈Python3 操作系统与路径 模块(os / os.path / pathlib)

    下面小编就为大家分享一篇详谈Python3 操作系统与路径 模块(os / os.path / pathlib),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python2.7安装图文教程

    python2.7安装图文教程

    这篇文章主要为大家详细介绍了python2.7安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • 如何在Python项目中做多环境配置(环境变量使用.env文件)

    如何在Python项目中做多环境配置(环境变量使用.env文件)

    实际工程开发中常常会对开发、测试和生产等不同环境配置不同的数据库环境,传统方式可以通过添加不同环境的配置文件达到部署时的动态切换的效果,这篇文章主要给大家介绍了关于如何在Python项目中做多环境配置的相关资料,环境变量使用.env文件,需要的朋友可以参考下
    2024-06-06
  • Django imgareaselect手动剪切头像实现方法

    Django imgareaselect手动剪切头像实现方法

    这篇文章主要介绍了Django imgareaselect手动剪切头像实现方法,实例分析了Django框架操作图片的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 分享4个Python中的非常好用的自动化脚本

    分享4个Python中的非常好用的自动化脚本

    这篇文章为大家准备了4个很棒的Python自动化脚本,可以解决这些问题。文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2022-11-11
  • Python整数与Numpy数据溢出问题解决

    Python整数与Numpy数据溢出问题解决

    这篇文章主要介绍了Python 的整数与 Numpy 的数据溢出,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • python 通过可变参数计算n个数的乘积方法

    python 通过可变参数计算n个数的乘积方法

    今天小编就为大家分享一篇python 通过可变参数计算n个数的乘积方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python+Sklearn实现异常检测

    Python+Sklearn实现异常检测

    这篇文章主要为大家详细介绍了Python如何利用Sklearn实现异常检测,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以跟随小编一起学习一下
    2022-12-12

最新评论