前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >49.python str/bytes/unicode区别详解

49.python str/bytes/unicode区别详解

作者头像
猿说编程[Python和C]
修改2021-04-27 15:17:34
1.8K0
修改2021-04-27 15:17:34
举报
文章被收录于专栏:猿说编程猿说编程

一.前言

在讲解 str / bytes /unicode区别之前首先要明白字节和字符的区别,请参考:bytearray/bytes/string区别 中对字节和字符有清晰的讲解,最重要是明白:

字符str是给人看的,例如:文本保存的内容,用来操作的;

字节bytes是给计算机看的,例如:二进制数据,给计算机传输或者保存的;

二.str/bytes/unicode区别

1.在python2.x版本中str/bytes/unicode区别

在python2.x版本中str跟bytes是等价的;值得注意的是:bytes跟unicode是等价的,详情见下图

代码语言:javascript
复制
s1 = u"Hello, World!"
s2 = "Hello, World!"
print(type(s1))
print(type(s2))

输出:

代码语言:javascript
复制
<type 'unicode'>
<type 'str'>

2.在python3.x版本中str/bytes/unicode区别

在python3.x版本中str跟unicode是等价的;值得注意的是:bytes跟unicode是不等价的,详情见下图

代码语言:javascript
复制
s1 = u"Hello, World!"
s2 = "Hello, World!"
print(type(s1))
print(type(s2))

输出:

代码语言:javascript
复制
<class 'str'>
<class 'str'>

三.string与bytes相互转换

1.string经过编码encode转化成bytes

代码语言:javascript
复制
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): https://www.codersrc.com/
 
@File:python_bytes_string_4.py
@Time:2020/3/4 10:25
 
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
 
 
s = "https://www.codersrc.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))

输出结果:

代码语言:javascript
复制
b'shuopython.com'
<class 'bytes'>
b'https://www.codersrc.com/'
<class 'bytes'>

2.bytes经过解码decode转化成string

代码语言:javascript
复制
# 字节对象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)

输出结果:

代码语言:javascript
复制
猿说python
猿说python
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.前言
  • 二.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
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档