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爬虫 urllib2的使用方法详解

    Python爬虫 urllib2的使用方法详解

    这篇文章主要介绍了Python爬虫 urllib2的使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • django的分页器Paginator 从django中导入类

    django的分页器Paginator 从django中导入类

    这篇文章主要介绍了django的分页器Paginator 从django中导入类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python中动态创建类实例的方法

    Python中动态创建类实例的方法

    在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢?其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块
    2017-03-03
  • python简单线程和协程学习心得(分享)

    python简单线程和协程学习心得(分享)

    下面小编就为大家带来一篇python简单线程和协程学习心得(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Python实现GUI图片浏览的小程序

    Python实现GUI图片浏览的小程序

    这篇文章主要介绍了Python实现GUI图片浏览程序,程序的实现需要pillow库,pillow是 Python 的第三方图像处理库,需要安装才能实用,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Python通过requests模块实现抓取王者荣耀全套皮肤

    Python通过requests模块实现抓取王者荣耀全套皮肤

    只学书上的理论是远远不如实践带来的提升快,只有在实例中才能获得能力的提升,本篇文章手把手带你用Python实现抓取王者荣耀全套皮肤,大家可以在过程中查缺补漏,提升水平
    2021-10-10
  • 在Django的URLconf中使用多个视图前缀的方法

    在Django的URLconf中使用多个视图前缀的方法

    这篇文章主要介绍了在Django的URLconf中使用多个视图前缀的方法,Django是Python中最为著名的遵循MVC结构的开发框架,需要的朋友可以参考下
    2015-07-07
  • 浅谈如何测试Python代码

    浅谈如何测试Python代码

    今天带大家了解如何用Python测试代码,文中有非常详细的介绍及代码示例,对正在学习的小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06
  • 详解如何在Apache中运行Python WSGI应用

    详解如何在Apache中运行Python WSGI应用

    在生产环境上,一般会使用比较健壮的Web服务器,如Apache来运行我们的应用,本文中我们就会介绍如何使用Apache模块mod_wsgi来运行Python WSGI应用。感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Python字符串处理函数简明总结

    Python字符串处理函数简明总结

    这篇文章主要介绍了Python字符串处理函数简明总结,本文总结了一些常用的字符串处理函数,需要的朋友可以参考下
    2015-04-04

最新评论