# coding:gbk
import sys
import locale
def p(f):
print '%s.%s(): %s' % (f.__module__, f.__name__, f())
# 返回當前系統所使用的默認字符編碼
p(sys.getdefaultencoding)
# 返回用於轉換Unicode文件名至系統文件名所使用的編碼
p(sys.getfilesystemencoding)
# 獲取默認的區域設置並返回元祖(語言, 編碼)
p(locale.getdefaultlocale)
# 返回用戶設定的文本數據編碼
# 文檔提到this function only returns a guess
p(locale.getpreferredencoding)
# \xba\xba是'漢'的GBK編碼
# mbcs是不推薦使用的編碼,這里僅作測試表明為什么不應該用
print r"'\xba\xba'.decode('mbcs'):", repr('\xba\xba'.decode('mbcs'))
#在筆者的Windows上的結果(區域設置為中文(簡體, 中國))
#sys.getdefaultencoding(): gbk
#sys.getfilesystemencoding(): mbcs
#locale.getdefaultlocale(): ('zh_CN', 'cp936')
#locale.getpreferredencoding(): cp936
#'\xba\xba'.decode('mbcs'): u'\u6c49'