[英]Reading a text file in unicode from a URL?
我正在嘗試使用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文檔,因此可以從標題和/或其內容中剔除該文檔的編碼,但這超出了您的問題范圍。
將下面的代碼放在頂部。
# coding: utf-8
對於python實際上支持unicode並不容易。 也推薦這篇文章。
http://www.python.org/dev/peps/pep-0263
http://groups.google.com/group/python-excel/browse_thread/thread/100ec019d3a2a1a9
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.