目录
一.前言
二.str/bytes/unicode区别
1.在python2.x版本中str/bytes/unicode区别
2.在python3.x版本中str/bytes/unicode区别
三.string与bytes相互转换
1.string经过编码encode转化成bytes
2.bytes经过解码decode转化成string
在讲解 str / bytes /unicode区别之前首先要明白字节和字符的区别,请参考:bytearray/bytes/string区别 中对字节和字符有清晰的讲解,最重要是明白:
字符str是给人看的,例如:文本保存的内容,用来操作的;
字节bytes是给计算机看的,例如:二进制数据,给计算机传输或者保存的;
在python2.x版本中str跟bytes是等价的;值得注意的是:bytes跟unicode是等价的,详情见下图
s1 = u"Hello, World!"
s2 = "Hello, World!"
print(type(s1))
print(type(s2))
输出:
在python3.x版本中str跟unicode是等价的;值得注意的是:bytes跟unicode是不等价的,详情见下图
s1 = u"Hello, World!"
s2 = "Hello, World!"
print(type(s1))
print(type(s2))
输出:
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com
@File:python_bytes_string_4.py
@Time:2020/3/4 10:25
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
s = "shuopython.com"
#将字符串转换为字节对象
b2 = bytes(s,encoding='utf8') #必须制定编码格式
# print(b2)
#方法一:字符串encode将获得一个bytes对象
b3 = str.encode(s)
#方法二:字符串encode将获得一个bytes对象
b4 = s.encode()
print(b3)
print(type(b3))
print(b4)
print(type(b4))
输出结果:
b'shuopython.com'
b'shuopython.com'
# 字节对象b2
# 如果含有中文,必须制定编码格式,否则报错TypeError: string argument without an encoding
b2 = bytes("猿说python", encoding='utf8')
# 方法二:bytes对象decode将获得一个字符串
s2 = bytes.decode(b2)
# 方法二:bytes对象decode将获得一个字符串
s3 = b2.decode()
print(s2)
print(s3)
输出结果:
猿说python
猿说python
1.python bytearray/bytes/string区别
2.python bytes
3.python bytearray
4.python 深拷贝和浅拷贝
5.python 局部变量和全局变量
转载请注明:猿说Python » python python str/bytes/unicode区别详解
技术交流、商务合作请直接联系博主
扫码或搜索:猿说python
猿说python
微信公众号 扫一扫关注