转换为utf-8 python

时间:2016-06-28 19:24:36

标签: python encoding utf-8

我正在使用Ubuntu和python 3.4从维基百科的api下载数据。我正在保存名称,我看到不同语言的字符未正确保存。

例如:日の火曜日保存为æ¥ã®ç«ææ¥。

我想我可能不会在utf-8中保存它所以我将代码更改为

fd = io.open("filename",'w',encoding='utf8')
fd.write(str(name.encode('utf-8'), 'utf-8'))

但我仍然得到相同的结果。

我使用的api是here

我对此的理解是,utf-8应该能够处理所有语言的文本。此外,Ubuntu中的控制台默认使用utf-8,如果我运行more之类的命令,它应该正确打印出字符串。

2 个答案:

答案 0 :(得分:0)

检查响应代码,从响应中获取charset并使用它进行解码。您可以使用name.decode('utf-8')str(name, 'utf-8')进行解码。

F.e。

resp = urlopen(url)
if resp.code == 200:
    with open('filename', 'w') as fd:
        fd.write(str(name, resp.info().get_content_charset()))
        #or fd.write(name.decode(resp.info().get_content_charset()))

答案 1 :(得分:0)

问题是我的ssh客户端,它显示错误的字符串。代码工作正常。