2011-03-12 34 views
0

我想是這樣的:UnicodeEncodeError:ASCII希望使用Unicode時

 
outFile = open("file.txt", "wt",encoding='utf-8') 
outFile.write(str(sentence)) 
outFile.close() 

,並得到錯誤:

UnicodeEncodeError: 'ASCII' 編解碼器不能編碼字符 '/ x4e' 。

爲什麼使用ascii編碼器?

我說我的字符串(str(句子))是unicode嗎?那麼爲什麼在寫入文件時它不是簡單地編碼爲utf-8呢?這個代碼在ubuntu和windows上運行時不會出現異常,在mac os x上發生異常。

在我看來,ASCII正在使用默認的地方在我的Mac,即使我明確說明使用UTF-8的

請幫幫忙,

巴里

回答

0

str()返回一個字符串是。一個str在編寫時會被編碼,是的。 我並不完全確定爲什麼使用ascii編碼(它是Python 2中的默認編碼,但不是Python 3中的編碼),但我更不確定爲什麼要使用str(sentence)。如果你想解碼字節,你不使用str()你使用.decode()。所以開始刪除str()電話。

你沒有給出完整的追溯,但我猜測它是給出錯誤的str(sentence)