简述Python处理中⽂字符(utf-8gbkunicode)
起源:
gbk最先出现,⽤于编码中⽂字符,⽆法编码任意国家字符
Unicode为万国码,它每种语⾔中的每个字符设定了统⼀并且唯⼀的⼆进制编码,却没有规定这个⼆进制编码如何存储,⽽utf-8是Unicode的实现⽅式之⼀。个⼈理解Unicode码整体有⼀个特性,就是数值⼩的字符使⽤频率相对较⾼,⽽utf-8在编码时数值⼩的字符⽤的byte少,从⽽提⾼存储效率
Unicode字符集既可以⽤utf-8编码⽅式编成计算机能够识别的⼆进制数值,也可以⽤utf-16,utf-32等⽅式编码。
Python2默认是ASCII码,⽆法表⽰中⽂
Python3 string默认是Unicode码,默认使⽤utf-8编码
本⽂只讨论Python3
import sys
defaultencoding())
⽂本⽂档是utf-8编码保存的,这样可以最⼤限度的节省空间。但是当对⽂档进⾏操作时,计算机会先把utf-8转换为unicode然后放在内存中,保存时⼜将unicode转换为utf-8。
python把unicode码作为基准,因此unicode转其他码⽤encode,其他码转unicode⽤decode
s='汉字'
print(s,type(s))
中文字符unicode查询de()
print(s0,type(s0))
s1=s0.decode()
print(s1,type(s1))
de('utf-8')
print(s2,type(s2))
de('gbk')
print(s3,type(s3))
s4=s2.decode('utf-8')
print(s4,type(s4))
s5=s3.decode('gbk')
print(s5,type(s5))
可以看出,string是⽤unicode编码的,默认encode和decode分别是unicode转成utf-8和utf-8转成unico
de
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论