演示
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'}