解決Python script無法在cp65001的console下執行的問題

你是否有這樣的經驗,明明沒問題的script,拿到某的電腦一直看到下面的訊息而無法執行。

LookupError: unknown encoding: cp65001  
cp65001是什麼鬼!?其實,它就是UTF8阿!只是,Microsoft喜歡叫他cp65001(code page 65001號)。附帶一提,我們常用的Big5是cp950。想要知道你目前所使用的code page可以在Windows的console視窗執行   

[][1] chcp

就可以看到。 為了要避免這樣的問題,我們要告訴Python,cp65001就是utf-8。因此,利用下面的script我們可以讓cp65001變成utf-8。

## A workaround to alias utf8 encoding to cp65001(Microsoft's utf8)

try:

codecs.lookup('cp65001')

except:

def cp65001(name):

if name.lower() == 'cp65001':

return codecs.lookup('utf-8')

codecs.register(cp65001)

解決Python script無法在cp65001的console下執行的問題

[1]:

comments powered by Disqus