1、源程序代码本身有默认编码格式(文件的保存格式),如果字符串没有特别标明是什么格式,其格式就为默认的格式
2、命令行解释器也有其默认编码,一般是ascii,可以通过sys.getdefaultencoding()查看,目前还不知道在哪里可以修改,有说sys.setdefaultencoding()可以修改,可修改后,再查询,就什么也不输出。另一种查询方式是使用locale.getdefaultlocale()查看,其设置为locale.setlocale(categery,locale),可以使用help查看怎么使用。但都没默认的编码格式。
3、有些编码格式之间不能直接转换、如编码1(GBK,GB2312) 转换为 编码2(utf-8,utf-16,ISO-8859-1),可以先转为unicode,再转为编码2. 更详细的转换见http://www.pythonclub.org/python-basic/codec
4、判断字符串的编码,可以使用chardet.detect(str)来检查,不过要自己先安装。还有一种方法isinstance(str,unicode)判断str是不是unicode编码。
5、在windows的控制台上,支持gbk编码的str对象和unicode编码的unicode对象。