【发布时间】:2016-03-04 14:26:59
【问题描述】:
我遇到的编码问题似乎与这里的其他问题非常相似,但并不完全相同,我无法弄清楚这一切。
我以为我已经掌握了编码的概念,但是我有这些特殊字符(æ、ø、å、ö 等)在打印时看起来不错,但无法写入文件。 (例如,当我写入文件时,æ 变为 Ê)
我的代码如下:
def sortWords(subject, articles, stopWordsFile):
stopWords = []
f = open(stopWordsFile)
for lines in f:
stopWords.append(lines.split(None, 1)[0].lower())
for x in range(0,len(articles)):
f = open(articles[x], 'r')
article = f.read().lower()
article = re.sub("[^a-zA-Z\æøåÆØÅöÖüÜ\ ]+", " ", article)
article = [word for word in article.split() if word not in stopWords]
print ' '.join(article)
w = codecs.open(subject+str(x)+'.txt', 'w+')
w.write(' '.join(article))
sortWords("hpv", ["vaccine_texts/hpv1.txt"], "stopwords.txt")
我尝试了各种编码,使用 codecs.open(file, r, 'utf-8') 打开文件,但无济于事。我在这里错过了什么?
我在 ubuntu 上(从 Windows 切换,因为它的终端无法正确输出)
【问题讨论】:
-
@JoeDoherty 我看过这个,我写的时候不能使用
.encode('utf8'),因为它给了我一个错误。无论我用什么打开文件,它都会显示奇怪的符号(sublime、gedit、vim、记事本)。为什么会发生这种情况? -
我打开的一个文件的编码似乎有问题。我尝试了两个单独的文件,其中一个运行良好。我尝试将该文件的内容复制并粘贴到一个新的文本文件中,然后它就起作用了。奇怪