Python 3.0+urllib.parseфункция
urllib.parse.unquote_to_bytes()
процентное кодирование
Заменяет %XX на байты и возвращает bytes, ничего не декодируя, — когда кодировка заранее неизвестна.
Синтаксис
urllib.parse.unquote_to_bytes(string)
unquote() молча подставляет «�» вместо байтов не в UTF-8, а эта функция отдаёт их как есть, и кодировку можно выбрать самому — например cp1251 для адресов старых сайтов. Принимает str и bytes. «+» не трогает.
Примеры
from urllib.parse import unquote, unquote_to_bytes
raw = unquote_to_bytes('%B8')
print(raw, raw.decode('cp1251')) # → b'\xb8' ё
print(unquote('%B8') == '\ufffd') # → True — байт потерян
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности