2013-06-04 69 views
0

我上無法打開文件,任何性格特徵的中國,與encording設置爲utf-8提高UnicodeEncodeError:編碼= 'UTF-8' 打開時,utf-8的文件,中國焦炭

text = open('file.txt', mode='r', encoding='utf-8').read() 
print(text) 

UnicodeEncodeError: 'charmap' codec can't encode character '\u70e6' in position 0: character maps to <undefined>

該文件是100%utf-8。
http://asdfasd.net/423/file.txt
http://asdfasd.net/423/test.py
如果我刪除encoding='utf-8'一切正常。

這裏編碼有什麼問題?
打開文件時我總是用encoding='utf-8',我現在不用現在發生什麼了。

+0

您在閱讀文件時沒有問題,但使用*寫*(或打印)。讀取會導致一個'UnicodeDecodeError',但是你有一個* encoding *的問題。 –

+2

見http://wiki.python.org/moin/PrintFails –

回答

1

您看到的例外來自印刷您的數據。打印要求您將數據編碼爲終端或Windows控制檯使用的編碼。你可以從異常(和回溯,但你沒有包括)中看到這個;如果你在解碼數據時遇到問題(當你從一個文件讀取時會發生什麼),那麼你會得到一個UnicodeDecodeError,你得到了一個UnicodeEncodeError

您需要可以調整你的終端或控制檯編碼,或不打印數據

http://wiki.python.org/moin/PrintFails問題排查幫助。

+0

現在我明白了。我沒想到控制檯可能會引發錯誤。 – Qiao