首页 > 其他 > 详细

10字符编码

时间:2021-04-03 13:01:35      阅读:18      评论:0      收藏:0      [点我收藏+]

一、发展

ASCII编码(2**8,表示256个字符)--->GBK\Shift_JIS......(万国码)----->unicode(统一)---->utf-8(解决unicode浪费,英文字符用1Bytes表示,中文字符用3Bytes)

可以这么理解: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 对象,只有unicode才有encode()方法。

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解码

 

10字符编码

原文:https://www.cnblogs.com/cc-world/p/14259933.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!