编码(encode和decode)
⼀. 编码
1. ASCII编码
  ASCII是最早的计算机编码,包含了英⽂字母(⼤⼩写),数字,标点等特殊符号,⼀共128个码位,最多只能⽤8位来表⽰(⼀个字节),ASCLL码最多256个位置,⽆法提供中国的汉字.
2. GBK编码
  GBK是国标码,占两个字节(16位),虽然位置增多了,但还是⽆法将汉字全部存储.
3. unicode
  unicode是万国码,占4个字节(32位),有40多亿个位置,远远⼤于中国的汉字数.太浪费.
4. utf-8
  utf-8是⽬前使⽤最多的编码,每个字符⾄少占8位.
  英⽂:⼀个字节(8 bit).  欧洲⽂字:两个字节(16bit).  中⽂:三个字节(24bit)
⼆. encode和decode
1. encode()
  encode()是编码, 编码之后的数据是bytes类型的数据.格式:b'(英⽂),b'\x(中⽂)
a = "hello"
de("GBK"))    #b'hello'
de("ASCII"))  #b'hello'
de("UTF-8"))  #b'hello'
b = "今天下⾬了"
de("GBK"))    #b'\xbd\xf1\xcc\xec\xcf\xc2\xd3\xea\xc1\xcb'  10个字节
de("ASCII"))  #报错
de("UTF-8"))  #b'\xe4\xbb\x8a\xe5\xa4\xa9\xe4\xb8\x8b\xe9\x9b\xa8\xe4\xba\x86'  15个字节
  注:英⽂编码之后的结果和源字符串⼀致.  中⽂编码之后的结果根据编码的不同. 编码结果也不同. ⼀个中⽂的UTF-8编码是3个字节. ⼀个GBK的中⽂⽂编码是2个字节. ASCII码没有中⽂.编码之后的类型就是bytes类型.
2. decode()
  接收对⽅的编码,我们得到的也是bytes类型,需要进⾏解码来获取原来的字符串.decode()是⽤来解码的.
bs = b'\xbd\xf1\xcc\xec\xcf\xc2\xd3\xea\xc1\xcb'  #不要带引号,直接把bytes给赋值
print(bs.decode("GBK"))  #今天下⾬了
print(bs.decode("UTF-8"))  #报错,⽤什么编码就要⽤什么解码.
  GBK和UTF-8是不可以互相转换的,但是可以通过Unicode来转换.
bs = b'\xbd\xf1\xcc\xec\xcf\xc2\xd3\xea\xc1\xcb'  #不要带引号,直接把bites给赋值
a = bs.decode("GBK")  #今天下⾬了
unicode汉字
de("UTF-8"))  #b'\xe4\xbb\x8a\xe5\xa4\xa9\xe4\xb8\x8b\xe9\x9b\xa8\xe4\xba\x86'  15个字节

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。