В Python 3 этими функциями являются urllib.parse.unquote
и urllib.parse.unquote_plus
.
Последний используется, например, для строк запроса в URL-адресах HTTP, где пробельные символы (
) традиционно кодируются как плюс (+
), а +
кодируется в процентах до %2B
.
В дополнение к этому есть unquote_to_bytes
, который преобразует данную закодированную строку в bytes
, который может использоваться, когда кодирование неизвестно или закодированные данные являются двоичными данными. Однако нет unquote_plus_to_bytes
, если вам это нужно, вы можете сделать:
def unquote_plus_to_bytes(s):
if isinstance(s, bytes):
s = s.replace(b'+', b' ')
else:
s = s.replace('+', ' ')
return unquote_to_bytes(s)
Дополнительная информация о том, использовать ли unquote
или unquote_plus
, доступна по адресу URL, кодирующий символ пробела: + или% 20 .