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")`

上面的代码在编写 uni-code 字符时无法正常工作......即使我正在使用编解码器并进行编码。我不断收到错误

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 回答