2015-09-24 37 views
0

从一个网页,我srcaped一个词“Zápas”。问题在于我的数据中最接近的版本如​​下所示:在windows-1250编码之后的Z \ xe1pas。没有那个str(a)有一些ANSI错误。 谢谢你的帮助。编码斯洛伐克字母,如:ášČé

我尝试:

def encode(text): 
    return text.encode('windows-1250')... 
... 
for cell in row.findAll(['td', 'th']): 
    cell=encode(cell.get_text().strip()) 
    a.append(cell) 
foo.write(str(a)+"\n") 
+0

为什么你手动编码而不是让'foo'处理它? –

+1

对于涉及unicode的任何事情,指定Python 2或Python 3以及(最好)标记非常重要。 – nigel222

回答

1

可能是a字符串实际上是一个unicode字符串。要将它写入字节流,您应该将其编码为指定编码的字节字符串,您的情况为windows-1250,我的编码为utf-8。只要使用a.encode(<encoding>) before sending result to the foo.write()`:

foo.write(a.encode("utf-8")) 

此外,我会处理在unicode整个数据转换为字节串立即发送数据“外”(文件之前,对远程目标等)