Какие символы разрешены в строке запроса URL?
Строки запроса должны соответствовать определенному формату?
Какие символы разрешены в строке запроса URL?
Строки запроса должны соответствовать определенному формату?
Per http://tools.ietf.org/html/rfc3986
В разделе 2.2 Зарезервированные символы перечислены следующие символы:
reserved = gen-delims/sub-delims
gen-delims = ":" / "/" /"? "/" # "/" [ "/" ] "/" @"
sub-delims = "! "/" $ "/" & "/" "/" ( "/" ) "/" * "/" + "/" , "/" ; "/" ="
Затем спецификация:
Если данные для компонента URI будут конфликтуют с зарезервированными символами в качестве разделителя, то конфликтующие данные должны быть процентного кодирования до формирования URI.
Далее, в разделе 2.3 "Незарезервированные символы" перечислены:
unreserved = ALPHA/DIGIT/"- "/" . "/" _ "/" ~"
В Википедии есть ваш ответ: http://en.wikipedia.org/wiki/Query_string
" Кодировка URL: Некоторые символы не могут быть частью URL (например, пробел), а некоторые другие символы имеют особое значение в URL-адресе: например, символ # может использоваться чтобы дополнительно указать подраздел (или фрагмент) документа, символ = используется для разделения имени из значения. Строку запроса может потребоваться преобразовать для удовлетворения этих ограничений. Это можно сделать с помощью схемы, известной как кодировка URL-адреса.
В частности, при кодировании строки запроса используются следующие правила:
Октет, соответствующий тильде ( "~" ), часто кодируется как "% 7E" более старыми реализациями обработки URI; "% 7E" можно заменить на "~" без изменения его интерпретации. Кодирование SPACE как "+" и выбор символов "как есть" отличает эту кодировку от RFC 1738 ".
Что касается формата, строки запроса представляют собой пары значений имени.? отделяет строку запроса от URL-адреса. Каждая пара значений имени разделяется амперсандом (&), в то время как имя (ключ) и значение разделяются знаком равенства (=). например. http://domain.com?key=value&secondkey=secondvalue
В Структура в справочной системе Википедии я привел:
Эта ссылка содержит ответы и отформатированные значения, которые вам нужны.
https://perishablepress.com/url-character-codes/
Для вашего удобства это список:
< %3C
> %3E
# %23
% %25
{ %7B
} %7D
| %7C
\ %5C
^ %5E
~ %7E
[ %5B
] %5D
` %60
; %3B
/ %2F
? %3F
: %3A
@ %40
= %3D
& %26
$ %24
+ %2B
" %22
space %20