Как и quote_plus
(*), вам также необходимо HTML-кодировать любой текст, который вы выводите в HTML. В противном случае символы <
и &
будут иметь разметку с потенциальными последствиями для безопасности. (Хорошо, вы не получите <
в URL, но вы определенно получите &
, так что только одно имя параметра, которое соответствует имени объекта HTML, и ваша строка испорчены.
html= '<a href="page?q=%s">click here</a>' % cgi.escape(urllib.quote_plus(q))
*: на самом деле старый добрый quote
тоже хорошо; Я не знаю, что у вас не получилось, но это очень хороший способ для строк кодирования URL. Он преобразует пробелы в %20
, что также допустимо и допустимо и в частях пути. quote_plus
является оптимальным для генерации строк запроса, но в противном случае, если есть сомнения, quote
является наиболее безопасным.