python的编解码(utf-8与gbk互转)

演示

python内部字符串统一是用unicode来存的,但是字符串在初始化的时候会因为操作系统环境而有差异

下面是在Linux环境下(UTF-8)初始化字符串

>>> d = '测试'
>>> d
'\xe6\xb5\x8b\xe8\xaf\x95'

转成unicode,可以看到变成了u开头的一堆字符,这个时候就可以转码了

>>> d = d.decode('utf-8')
>>> d
u'\u6d4b\u8bd5'

转成GBK编码

>>> d = d.encode('gbk')
>>> d
'\xb2\xe2\xca\xd4'

总结:

  • decode操作,把编码后的字符串转成未编码的unicode
  • encode操作,将unicode转成编码后的字符串

智能判断编码类型

>>> import chardet

>>> d = d.encode('utf-8')
>>> chardet.detect(d)
{'confidence': 0.7525, 'language': '', 'encoding': 'utf-8'}

你可能感兴趣的:(python的编解码(utf-8与gbk互转))