IDNA nameprep Недопустимый символ u '\ x94' - PullRequest
1 голос
/ 20 февраля 2012

У меня есть рабочий URL с Unicode и я пытаюсь применить кодировку IDNA

test = ur"http://example.com/%D0%94%D0%B8%D1%81%D0%BA%D0%BE%D0%BD%D1%82-%D1%82%D0%B0%D0%BA%D1%81%D0%B8.22219/"
url_unq = urllib.unquote(test)
print url_unq
print url_unq.encode("idna")

Приведенный выше код завершается с:

Файл "C: \ Python25 \ lib \ encodings \ idna.py", строка 38, в nameprep поднять UnicodeError («Недопустимый символ% r»% c) UnicodeError: Недопустимый символ u '\ x94'

Что не так с моими кодировками?

1 Ответ

2 голосов
/ 20 февраля 2012

Это потому, что \x94 не может быть закодирован в IDNA - см. RFC3454 :

0080-009F; [КОНТРОЛЬНЫЕ ХАРАКТЕРЫ]

...