簡體   English   中英

從URL讀取Unicode文本文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM