介绍几个常用概念:
1. unicode和str:
前者是没有编码过的字符串;后者是已经编码成某一种编码方式的字符串,例如是gbk,utf-8,ascii等编码方式的字符串。两者都是basestring的子类
2. 系统编码,代码编码,文件编码,终端输入输出编码
系统编码: 默认编码,正常情况下window系统默认是gbk,linux系统默认是utf-8,可用locale.getdefaultlocale()和locale.setdefaultlocale()来控制,与encode有关
代码编码:python代码中的编码,默认是ascii,可用"# -*- coding: utf-8 -*-"这种方式指定。python默认编码可用sys.getdefaultencoding()和sys.setdefaultencoding()来控制
文件编码:sys.getfilesystemencoding()
终端输入编码:sys.stdin.encoding
终端输出编码:sys.stdout.encoding,必须与locale编码保持一致,才能print