1

内容をファイルに書き込むための以下のコードを書きましたが、

   with codecs.open(name,"a","utf8") as myfile:
         myfile.write(str(eachrecord[1]).encode('utf8'))
         myfile.write(" ")
         myfile.write(str(eachrecord[0]).encode('utf8'))
         myfile.write("\n")`

上記のコードは、ユニコード文字を書くときに正しく機能しません....コーデックを使用してエンコードを行っていますが。エラーが発生し続けます

UnicodeEncodeError: 'ascii' コーデックは位置 6 の文字 u'\xe1' をエンコードできません: 序数が範囲内にありません(128)

誰かが私が間違っているところを見ることができますか?

編集:

with codecs.open(name,"a","utf8") as myfile:
                    myfile.write(unicode(eachrecord[1]))
                    myfile.write(" ")
                    myfile.write(unicode(eachrecord[0]))
                    myfile.write("\n")

これはうまくいきました..すべての簡単なコメントと回答に感謝します..それは本当に役立ちます..皆さんが私に言うまで、Pythonに「Unicode」オプションがあることに気づきませんでした

4

1 に答える 1

2

通話を削除しstr()ます。彼らはデフォルトのエンコーディングで暗黙のエンコーディングを行っています(asciiこの場合)。

于 2012-04-26T16:12:28.187 に答える