Mfcer__, посмотри rfc2068:
http://rfc.net/rfc2068.txt Только там размазано по тексту и ссылаются на другие RFC.
Попалась мне такая вот страница, где все это в сжатом виде подано:
http://www.bdbd.ru/rfc2068/7.htmquery = *( uchar | reserved )
uchar = unreserved | escape
unreserved = ALPHA | DIGIT | safe | extra | national
escape = "%" HEX HEX
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+"
extra = "!" | "*" | "'" | "(" | ")" | ","
safe = "$" | "-" | "_" | "."
unsafe = CTL | SP | <"> | "#" | "%" | "<" | ">"
national = <любой OCTET, исключая ALPHA, DIGIT, зарезервированный, extra, safe, и unsafe>
Все наборы символов, кроме
unsafe и
reserved, могут присутствовать в
query напрямую.
Unsafe и
reserved должны быть в формате
escape. Часто
national тоже передают в формате
escape.
Кодировки никак не определены. Предполагается, что они соответствуют полю заголовка
Accept-Charset.
Мой исследжования показали, что браузер отсылает текст в той же кодировке, в какой он получил страницу.
Мысли по этому поводу я выразил в статье:
https://club.shelek.ru/viewart.php?id=271