1. 程式人生 > >Python獲取當前環境下預設編碼

Python獲取當前環境下預設編碼

# 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'