с помощью Python 2.5.2 и Linux Debian я пытаюсь получить содержимое из испанского URL, который содержит испанский символ («I»):не может открыть Юникода URL с питона
import urllib url = u'http://mydomain.es/índice.html' content = urllib.urlopen(url).read()
I «получаю эту ошибку:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 8: ordinal not in range(128)
Я попытался с помощью, прежде чем передать URL в URLLIB это:
url = urllib.quote(url)
и это:
url = url.encode('UTF-8')
, но он не работает
вы можете сказать мне, что я делаю неправильно?
Я считаю, что это было с тех пор изменилось, и на наименьшие домены теперь могут содержать произвольные символы Unicode. – Cerin
@Cerin Сортировка. [IRI могут содержать произвольные символы Юникода] (https://www.w3.org/International/articles/idn-and-iri), но когда вы конвертируете их в обычные URI, они нормализуются к ASCII, используя «Punycode» (для компонент домена) и процентное кодирование (для компонента пути). –