在python中处理unicode字符的问题

时间:2012-04-26 16:06:20

标签: python unicode

我编写了以下代码,用于将内容写入文件,

   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'选项,直到你们告诉我

1 个答案:

答案 0 :(得分:2)

删除str()来电。他们使用默认编码进行隐式编码(在这种情况下为ascii)。