На текущий момент я обрабатываю url через urldecode().
Но столкнулся с такой проблемой - "+" и "%20" дают один и тот же результат, что меня не устраивает.
Получается, что страница открывается по двум разным url, пример: /page/как%20дела /page/как+дела
Подскажите, пожалуйста, как обработать подобного рода ситуацию?
kruslan, В части URL до знака вопроса допустимо только кодирование %20. Однако, со времён RFC1866 (HTML 2.0) плюсом кодировался пробел в данных форм (application/x-www-form-urlencoded). Из-за этого в части URL после знака вопроса и плюс, и %20 обозначают пробел.
Есть ещё один нюанс. При использовании mod_rewrite вполне возможно, что /page/как+дела будет переадресовано в /page?param=как+дела, таким образом и здесь плюс может перейти в пробел.
kruslan, Стандарт, может, к обработке URL и не имеет отношения, но кодирование пробела плюсом пошло именно оттуда.
Можете, конечно, не считать эти способы равнозначными, но по мне что совой о пень, что пнем о сову, а все сове больно.