Я говорю на сервер, который используется для отправки мне HTTP строк, как это:De закодировать URL параметры
/path/to/my/handler/?action-query&id=112&type=vca&info=ch=0&type=event&ev16[sts=begin (...)
Так что «информация» параметр GET включено «=» и «&» символов. Это было довольно неортодоксально, но тем не менее мы написали для него парсер. Тем не менее, в последнее время они решили закодировать часть, так что теперь строка выглядит следующим образом ..
/path/to/my/handler/?action=query&id=112&type=vca&info=ch%3D0%26type%3Devent%26ev46[sts%3Dbegin (...)
Это нарушает наш синтаксический анализатор, который ожидает строку, как и первый.
Могу ли я как-то «де-кодировать» строку, чтобы я мог использовать старый код (чтобы он не был сломан, когда мы перезаписываем парсер)?
В соответствии с нижеприведенным ответом мы можем использовать urllib.unquote() для очистки строки вверх. Однако мы полагаемся на request.GET, который настраивается на основе первой строки. Возможно ли восстановить объект GET на основе новой преобразованной строки или каким-то образом заставить ее переоценить?
Да, это избавляет от закодированных символов. Любое предложение о том, как я могу сделать request.GET вести себя так, как если бы он получил строку без кавычек? – Goro
@Goro, см. Редактирование моего первоначального ответа. Я не гуру Django, поэтому вы можете подождать, пока один из них перезвонит. –