2011-03-12 13 views
0

を使用したい場合、私はこのような何かしようとしている:UnicodeEncodeErrorを:ASCIIユニコード

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

をし、エラー取得:

UnicodeEncodeErrorを: 'ASCII' コーデックは文字 '/ x4e' をエンコードすることができません。

なぜASCIIエンコーダが使用されていますか?

私は文字列(str(文))がユニコードであると言っているのですか?それではなぜファイルに書かれたときにutf-8としてエンコードされないのですか?このコードは、Mac OS Xでの例外を除いて、ubuntuとwindowsで動いても例外ではありません。

そのアスキーが助けてください、私は明示的にUTF-8

の使用を述べていても、私のMac上のどこかにデフォルトで使用されているように思える、

バリー

答えて

0

str()はい文字列を返します。 。そしてstrは書き込まれるとエンコードされます。 asciiエンコーディングが使用されている理由(私はPython 2ではデフォルトのエンコーディングですが、Python 3ではそうではありません)は完全にはわかりませんが、なぜあなたがなぜそうするのかはわかりませんstr(sentence)。あなたが使用していないバイトをデコードする場合は、str().decode()としてください。まず、str()コールを削除してください。

完全なトレースバックはありませんが、エラーを返すのはstr(sentence)だと思います。

関連する問題