Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题

yipeiwu_com6年前Python基础

Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然).

    python3.0中怎么创建bytes型数据

bytes([1,2,3,4,5,6,7,8,9])
bytes("python", 'ascii') # 字符串,编码

设置一个原始的字符串

>>> website = 'http://www.169it.com/os'
>>> type(website)
<class 'str'>
>>> website
'http://www.169it.com/os'
>>>

按utf-8的方式编码,转成bytes

>>> website_bytes_utf8 = website.encode(encoding="utf-8")
>>> type(website_bytes_utf8)
<class 'bytes'>
>>> website_bytes_utf8
b'http://www.169it.com/os'
>>> 

  按gb2312的方式编码,转成bytes

>>> website_bytes_gb2312 = website.encode(encoding="gb2312")
>>> type(website_bytes_gb2312)
<class 'bytes'>
>>> website_bytes_gb2312
b'http://www.169it.com/os'
>>>

   解码成string,默认不填

>>> website_string = website_bytes_utf8.decode()
>>> type(website_string)
<class 'str'>
>>> website_string
'http://www.169it.com/os'
>>>
>>>

   解码成string,使用gb2312的方式

>>> website_string_gb2312 = website_bytes_gb2312.decode("gb2312")
>>> type(website_string_gb2312)
<class 'str'>
>>> website_string_gb2312
'http://www.169it.com/os'
>>> 

总结

以上所述是小编给大家介绍的Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!

相关文章

python 实现图片上传接口开发 并生成可以访问的图片url

python 实现图片上传接口开发 并生成可以访问的图片url

版本:python3.7 功能,开发一个用户访问的页面,支持图片上传,并将其保存在服务器。 项目结构: app.py文件内容如下: from flask import Flask,...

Python实现包含min函数的栈

本文实例讲述了Python实现包含min函数的栈。分享给大家供大家参考,具体如下: # coding=utf8 ''' 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元...

Anaconda下安装mysql-python的包实例

Anaconda下安装mysql-python的包实例

Anaconda下需要使用Python与MySQL数据库进行交互,所以需要import一个mysql-python的包, 但是在ipython中引用的时候发现Anaconda并没有包含该...

基于python进行抽样分布描述及实践详解

基于python进行抽样分布描述及实践详解

本次选取泰坦尼克号的数据,利用python进行抽样分布描述及实践。 备注:数据集的原始数据是泰坦尼克号的数据,本次截取了其中的一部分数据进行学习。Age:年龄,指登船者的年龄。Fare...

推荐下python/ironpython:从入门到精通

最近无聊,下了个visual studio 2005的furture,发现里面多了对动态语言的支持.其实很早就想摆弄下python,正好是个机会.一开始是想学ironpython,但后来...