python - 从 URL 读取 unicode 文本文件?

标签 python urllib2 urllib

我正在尝试使用 urllib 和 urllib2 从一个包含法语字符的文本文件中读取数据,例如“é”、“à”等。

def load(url):
     from urllib2 import Request, urlopen, URLError, HTTPError

     req = Request(url)

     f = urlopen(req)
     f.readline()

     for line in f:
          line = line.split('\t')
          word = line[0].encode('utf-8')

我觉得 read() 方法返回一个字节字符串,所以我使用 encode('utf-8') 来获取 unicode 值,但这给了我以下错误

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 6: ordinal not in range(128)

有人能告诉我这是怎么回事吗?任何帮助,将不胜感激。谢谢!

最佳答案

是的,您正在从文件中读取字节。您必须做的是解码,而不是编码,将字节字符串转换为 Unicode。你看,它已经编码了。如果不是,则您无需对其执行任何操作。

word = unicode(line[0], "utf8")

您必须指定文件中使用的编码如果它不是utf8,另一个可能是latin1。或者,你知道,因为它是一个 Web 文档,你可以从标题和/或其内容中提取文档的编码,但这有点超出你的问题范围。

关于python - 从 URL 读取 unicode 文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206169/

相关文章:

python - 为什么从页面检索的文本有时看起来像乱码?

python - 从 pandas 数据透视表重新排序多索引中的级别?

python - Robot Framework - 由 IAM 保护的 AWS API 网关

python - python 函数关心你是否使用它们的输出吗?

python - 使用 python mechanize 和具有随机代理支持的 urllib2

python - 使用 urllib 打开 HTTPS 链接失败

python - matplotlib 中相同数据上具有不同单位的第二个绘图轴?

python - 使用 Sphinx 自动记录 Python

python - Github API 帖子未找到 404

Python,BeautifulSoup,重新: How to convert extracted texts to dictionary from web?