1

我正在尝试从项目 gutenberg 的 url 访问文本文件。因此,我从 nltk 书中复制了相同的代码,结果不同。

from urllib import request
url = "http://www.gutenberg.org/files/2554/2554-0.txt"
response = request.urlopen(url)
raw = response.read().decode('utf8')
raw[:75]

这是来自 nltk 的书。当它正常工作时,它应该打印出来,

’The Project Gutenberg EBook of Crime and Punishment, by Fyodor Dostoevsky\r\n’

但是当我在我的电脑上尝试同样的方法时,结果是这样的,

'\ufeffThe Project Gutenberg EBook of Crime and Punishment, by Fyodor Dostoevsky\r'

我认为这是古腾堡项目中的标题问题。你能帮我解决这个问题吗?

4

1 回答 1

2

URL 响应文本似乎使用带有 BOM 的 UTF-8 编码。

尝试:

from urllib import request

url = "http://www.gutenberg.org/files/2554/2554-0.txt"

response = request.urlopen(url)
raw = response.read()
text = raw.decode("utf-8-sig")

有关更多信息,请参阅此答案

于 2020-05-19T18:19:23.177 回答