原文链接:http://in355hz.iteye.com/blog/1860787
两个 Python 字符串类型间可以用 encode / decode 方法转换:
# 从 str 转换成 unicode
print s.decode('utf-8')
# 从 unicode 转换成 str
print u.encode('utf-8')
为什么从 unicode 转 str 是 encode,而反过来叫 decode?
因为 Python 认为 16 位的 unicode 才是字符的唯一内码,而大家常用的字符集如 gb2312,gb18030/gbk,utf-8,以及 ascii 都是字符的二进制(字节)编码形式。把字符从 unicode 转换成二进制编码,当然是要 encode。
反过来,在 Python 中出现的 str 都是用字符集编码的 ansi 字符串。Python 本身并不知道 str 的编码,需要由开发者指定正确的字符集 decode。