Python 保存字符串到文件。Unicode 错误
我正在用Python通过电子表格API从Google表格中提取数据。我可以用一个循环在命令行上打印出电子表格的每一行,但有些文本里包含符号,比如摄氏度符号(一个小圆圈)。当我在命令行上打印这些行的时候,我想把它们写入一个文件。但是这样做时,我遇到了不同的Unicode错误。我尝试手动解决这个问题,但数据太多了,实在是麻烦。
current=current.replace(u'\xa0',u'')
current=current.replace(u'\u000a',u'p')
current=current.replace(u'\u201c',u'\"')
current=current.replace(u'\u201d',u'\"')
current=current.replace(u'\u2014',u'-')
我该怎么做才能不出现错误呢?例如:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 1394: ordinal not in range(128)
current=current.replace(u'\u0446',u'u')
3 个回答
-1
''.join(c for c in current if ord(c) < 128)
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
0
import unicodedata
decoded = unicodedata.normalize('NFKD', encoded).decode('UTF-8', 'ignore')
我不太确定在这种情况下是否需要使用normalize。此外,那个ignore选项意味着你可能会丢失一些信息,因为解码错误会被忽略。
5
你想要把它从当前的编码格式解码出来:
decoded_str = encoded_str.decode('utf-8')
如果你想了解更多关于如何处理unicode字符串的信息,可以查看这个链接:http://docs.python.org/howto/unicode.html