编码 大小 支持语言
ASCII 1个字节 英文
Unicode 2个字节(生僻字4个) 所有语言
UTF-8 1-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节 所有语言

py2编码:包含2种类型str和unicode, str相当于bytes, unicode 相当于str

python 2默认编码为ASCII,所以出现中文时会出现报错,那是一位ASCII没有包括中文。

# 解决方法一:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')# 解决方法二:
#coding:utf8# 解决方法三:
#-*- coding:utf-8 -*-

str是unicode这个字符串经过编码(utf8,gbk等)后的字节组成的序列,unicode才是真正意义上的字符串

#str格式
>>> a='高兴'
>>> a
'\xe9\xab\x98\xe5\x85\xb4'#unicode
>>> a=u'高兴'
>>> a
u'\u9ad8\u5174'

#Python 2 悄悄掩盖掉了 byte 到 unicode 的转换,让程序在处理 ASCII 的时候更加简单>>> print(u'nihao'+'gaoxing')
nihaogaoxing#在处理非ASSII内的字符相加时,会出现UnicodeDecodeError
>>> print(u'nihao'+'高兴')
Traceback (most recent call last):File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)

unicode 和str 转换,

py3编码:包含str和byte , “str” 类型存储的是一个 unicode, “bytes” 类型存储的是 byte,也可以通过一个 b 前缀来制造 byte

python 3默认编码为UTF-8

Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,

py3时:
a="中国" 和a=u"中国" 是一个意思,都表示str类型unicode存储类型
c=b"good" 表示str类型bytes存储类型

py2时:
a="中国" 和a=b"中国"  是一个意思,表示str类型bytes存储类型
a=u"中国"  表示str类型unicode存储类型

转载于:https://www.cnblogs.com/ghx1/p/10138614.html

Python知识点-py2和py3编码相关推荐

  1. 一图看懂py2/py3编码

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/xufive/article/detai ...

  2. python模块之lib2to3(py2转py3自动化工具)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之lib2to3(py2转py3自动化工具) #http://tieba.baidu.com ...

  3. python小技巧之:同时安装py2和py3,如何在指定的版本下pip安装包

    前言 由于python官方声明2020年以后不再维护python2,而之前的很多代码都是python2编写的,很多小伙伴在学习的时候同时安装了py2和py3两个版本,那么如果我想将第三方的包安装到指定 ...

  4. Python中必备知识点:对字符编码的基本操作

    字符编码 (注意:关于字符编码,如果没有特殊业务要求,请牢记仅使用UTF-8编码) 由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节.如果要在网络上传输,或者 ...

  5. ST3新建py2和py3的build system

    win7上同时装了py2和py3,在ST3中执行需要分别新建各自的build system:Tools->Build System->New Build System py2: {&quo ...

  6. python中的解码与编码

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

  7. 熬夜整理两万字Python知识点

    熬夜整理两万字Python知识点 第一章 变量和简单数据类型 1.1 变量 1.2 字符串 1.2.1 使用方法修改字符串大小 1.3 数 第二章 列表 2.1 列表概念 2.2 列表的相关操作 2. ...

  8. Python正则匹配中文与编码总结

    ###字符串的编码乱码问题由来已久,真的是令人头疼.这不是在做正则匹配中文时候,编码又一次成了拦路虎,在这儿记录两点.第一,字符串编码.第二,正则匹配中文. 早期编码都用ASCII编码,用一个字节来处 ...

  9. Python 知识点

                                          Python 知识点 1.对不定长参数的理解? 不定长参数有两种:*args和**kwargs: *args:是不定长参数, ...

最新文章

  1. C++中auto关键字
  2. ZF1.* 愤怒小鸟系列二:快速自定义创建MVC
  3. 拆解Mate 30 Pro,内部双重散热、铜管一体紫色防滚架,太酷了!
  4. 机器学习解决什么问题_机器学习帮助解决水危机
  5. android builder布局方式,android – AlertDialog.Builder与自定义布局和EditText;无法访问视图...
  6. 从队列、二叉树到优先队列
  7. 苹果计算机系统是什么,苹果电脑系统和Win电脑系统有什么不同
  8. Cocos2d-x教程-多线程与异步加载
  9. Win10专业版彻底禁用自动更新
  10. 现代信号处理 张贤达_清华大学信号处理著名学者张贤达去世,享年74岁
  11. Excel 宏编程的常用代码
  12. mysql (1) 聚集索引和非聚集索引
  13. matlab逻辑回归两次成绩录取查询,【多元逻辑回归分类】基于matlab的MNIST实践
  14. Node的文件操作、文件系统、数据流
  15. 将一个自然数拆分为N个自然数
  16. Android肝帝战纪之Fragmentation的使用(单Activity+多Fragment设计)
  17. 热烈欢迎云南财经大学统计与数学学院院长石磊教授来芝诺数据视察指导工作
  18. 什么是僵尸进程(Zombie Processes)
  19. 作为一名软件测试人员,有哪些网站是你应该多多关注的,哪些书籍是你必须要看的?
  20. MOS管符号箭头指向问题

热门文章

  1. Windows下能PING通网关不能打开网页解决方法
  2. 交换机网络故障及原因分析集锦
  3. Wget漏洞(CVE-2016-4971)利用方式解析
  4. 企业实战|Mysql不停机维护主从同步
  5. 用python建立socket,用python建立socket服务器
  6. Spring velocity 中文乱码 解决方案
  7. Android Studio支持Java1.8的解决方案
  8. visual studio 容器工具首次加载太慢 vsdbg\vs2017u5 exists, deleting 的解决方案
  9. 未能加载文件或程序集 CrystalDecisions.Web Version=10.2.3600解决方法
  10. 【vue开发问题-解决方法】(五)vue Element UI 日期选择器获取日期格式问题 t.getTime is not a function