前言
这是一个寒冷,下雨天,在2016年中期,开发人员仍在使用python编码问题而不使用Python 3.0。伟大的S.O社区会帮助他吗?我不知道,我们将不得不等待和看到
范围:
我有UTF-8
encoded file,其中包含带重音的字词,例如CURRÍCULO
和NÓS
。由于某些原因我无法掌握,我无法使用Python 2.7正确阅读它们。
代码段:
import codecs
f_reader = codecs.open('PATH_TO_FILE/Data/Input/kw.txt', 'r', encoding='utf-8')
for line in f_reader:
keywords.append(line.strip().upper())
print line
我得到的输出是:
TRABALHE CONOSCO
ENVIE SEU CURRICULO
ENVIE SEU CURRÍCULO
UnicodeEncodeError, 'ascii' codec can't encode character u'\xcd' in position 14: ordinal not in range(128)
编码,编码,编码:
我已经使用notepad ++将文件转换为常规utf-8和没有ByteOrderMark的文件,并且它向我展示了正常的字符,没有任何问题。顺便说一下,我正在使用Windows,默认情况下会将文件创建为ANSI。
问题:
如何才能正确阅读此文件,包括í
和ó
以及其他突出的字符?
为了更清楚,我想keep the accentuation
我在内存中使用的字符串。
更新
这是关键字列表,在内存中,使用您可以看到的代码从文件中读取。
答案 0 :(得分:0)
问题似乎不在于阅读,而在于印刷。你难过
顺便说一下,我使用Windows,默认情况下会创建ANSI文件。
我认为这包括打印到stdout
。尝试更改sys.output
编解码器:
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)