繁体   English   中英

UnicodeError从文件中读取Accentuation葡萄牙语字符

[英]UnicodeError Reading Accentuation Portuguese Characters from File

前言:

在2016年中期,这是一个阴雨天,开发人员仍因未使用Python 3.0而遇到python编码问题。 伟大的SO社区会帮助他吗? 我不知道,我们将不得不拭目以待

范围:

我有一个UTF-8 编码文件 ,其中包含带有重音的单词,例如CURRÍCULONÓ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在内存中使用的字符串。

更新:

这是内存中的关键字列表,使用您可以看到的代码从文件中读取。

内存中读取的关键字列表

问题似乎不在于阅读,而在于印刷。 你难过

顺便说一句,我使用的是Windows,默认情况下将以ANSI格式创建文件。

我认为这包括打印到stdout 尝试更改sys.output编解码器:

sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM