一、bytes类型

bytes类型是指一堆字节的集合,在python中以b开头的字符串都是bytes类型。例如:

>>> a = "中国"
>>> a.encode("utf-8")
b'\xe4\xb8\xad\xe5\x9b\xbd'

py3中字符串都是Unicode编码,显示正常字符,其余编码的数据都以bytes类型显示。

bytes类型的作用:

计算机只能存储2进制, 我们的字符、图片、视频、音乐等想存到硬盘上,也必须以正确的方式编码成2进制后再存。

对于文字,我们可以以gbk编码,也可以以utf-8、ASCII编码。

对于图片,必须编码成PNG,JPEG等格式

对于音乐,必须编码成MP3,WAV等...

在python中, 数据转成2进制后不是直接以0101010的形式表示的,而是用一种叫bytes(字节)的类型来表示,其中用16进制表示的二进制字节,即一个16进制表示四位二进制,2个16进制代表一个字节。

在python中,字符串必须编码成bytes后才能存到硬盘上。如果不在文件头声明编码,python3在文件存储中默认用utf-8编码。

另外,python中,字符的编码例如gbk、utf-8、ASCII等还可以识别转换,而图片、音乐、视频等,编码不能识别,只能以bytes形式出现,传输存储。

二、python中编码的转换方法

编码转换是指将一种编码转成另外一种编码,比如 utf-8 to gbk。

编码转换的作用:

不同操作系统编码不同, utf-8在win上没办法直接看,因为windows是GBK编码的,得转成gbk。

反过来如果你的GBK字符相在Linux\Mac上正常显示,就得转成utf-8编码。

另外,或者在python中将字符串定义直接定义为unicode编码,引号前加u,在任何系统都正常显示:

a = u"word"
>>> a
u'word'
>>> type(a)
<type 'unicode'>

编码转换的方法:

decode()解码,encode()编码

UTF-8 --> decode 解码 --> Unicode
Unicode --> encode 编码 --> GBK / UTF-8

例如:

>>> a = "中国"
>>> b = a.encode("utf-8")
>>> print(b)
b'\xe4\xb8\xad\xe5\x9b\xbd'
>>> b.decode("utf-8")
'中国'

注:以什么编码,就要以什么解码,要不然就出错或者乱码了

最新文章

  1. PHP设计模式之:单例模式
  2. 在Windows 7上安装MongoDB 2.6.7
  3. Subsets 解答
  4. 在 .NET中,一种更方便操作配置项的方法
  5. 如何用人工的方式将Excel里的一堆数字变成一个数组
  6. MFC控件第一讲.DC编程
  7. 8.异常_EJ
  8. ORA-00845 MEMORY_TARGET not supported on this system 的解决
  9. Canvas与javaScript特效笔记
  10. 用redis来实现Session保存的一个简单Demo
  11. qt QRegExp使用(搬运工)
  12. hdu 1754解题报告 (代码+注释)
  13. JS 数组对象根据下标拆分成新的数组
  14. 《AngularJS权威教程》
  15. insert-interval 插入区间
  16. Redis 启动警告错误解决[转]
  17. sass compass问题小结
  18. iOS网络框架 AFNetworking
  19. CSS Spritec下载,精灵图,雪碧图,初探之原理、使用
  20. sqlserver锁机制详解(sqlserver查看锁)

热门文章

  1. oc71--NSArray2
  2. Django - CBV装饰器实现用户登录验证
  3. 一个不错的jquery插件模版
  4. ACM_Ruin of Titanic(简单贪心)
  5. JSP 向 JavaScript 中传递数组
  6. post提交表单的数据查看方式(不是很理解,但要会看,可以找人商讨下,比如崔老师,自己再看一遍HTTP基础)
  7. EF 新增数据时提示it has a DefiningQuery and no &lt;InsertFunction&gt; element exists in the &lt;ModificationFunctionMapping&gt; element
  8. 在Swift中,如何像Objective-C定义可选接口?
  9. netty学习:UDP服务器与Spring整合
  10. HTML TabIndex属性