ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

1python基础----字符编码

2021-01-10 22:34:16  阅读:223  来源: 互联网

标签:1python 编码 bytes ---- encode unicode 字符串 decode


一、发展

ASCII编码--->>GBK\Shift_JIS......(万国码)----->unicode(统一)------>utf-8(解决unicode浪费)

可以这么理解:unicode、gbk、gb2312是编码字符集.utf-8是 unicode的一种实现方式

二、python3中str和bytes

在python3中,有3中字符串类型,str用于unicode文本(ASCII或其他),bytes用于二进制数据(包括编码的文本),bytearray是bytes的一种可变的变体。

python3中将str直接存成unicode

bytes是Python 3中特有的,Python 2 里不区分bytes和str。

bytes 类型的数据非常适合在互联网上传输,可以用于网络通信编程;

bytes 也可以用来存储图片、音频、视频等二进制格式的文件。

 有三种方法可以得到bytes类型的字符串:

1.如果字符串的内容都是 ASCII 字符,那么直接在字符串前面添加b前缀就可以转换成 bytes。
2.bytes 是一个类,调用它的构造方法,也就是 bytes(),可以将字符串按照指定的字符集转换成 bytes;如果不指定字符集,那么默认采用 UTF-8。
3.字符串本身有一个 encode() 方法,该方法专门用来将字符串按照指定的字符集转换成对应的字节串;如果不指定字符集,那么默认采用 UTF-8。

三、encode和decode 

# decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 'utf-8'。该方法返回解码后的字符串。
# encode() 方法以指定的编码格式编码字符串。该方法返回编码后的字符串,它是一个 bytes 对象。

s = '我'
print(s.encode('gbk'))    #str可以通过encode编码字符串,b'\xce\xd2'
print(s.encode('utf-8'))  #str可以通过encode编码字符串,b'\xe6\x88\x91'

print(b'\xce\xd2'.decode('gbk'))         #bytes对象通过decode解码
print(b'\xe6\x88\x91'.decode('utf-8'))  #bytes对象通过decode解码

 

标签:1python,编码,bytes,----,encode,unicode,字符串,decode
来源: https://www.cnblogs.com/cc-world/p/14259933.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有