Решал сегодня одну задачку: нужно было прикрутить к скрипту ЧПУ. Все бы ничего, да был у меня в скрипте организован поиск. Так вот, если искать что-то используя латинский алфавит (a-z) то все Ок. НО как только начинали что-то искать на кирилице, то Mod_Rewrite не знал что с этим всем кирилическим добром делать и посылал меня далеко-далеко. Очень просто выйти из этого положения если использовать кодировку UTF-8. Но у нас народная (я надеюсь что скоро большинство перейдет на UTF-8) кодировка windows-1251, вот тут то и засада. Я как всегда кинулся делать urlencode, но не тут то было - mod_rewrite и дальше посылал меня в деревню Кукуево.
Что же делать думал я, а оказалось все просто: надо делать , почемуто (я еще не разбирался почему), два вложенных urencode: urlencode(urlencode($search_str)).

October 1st, 2008 at 5:36 pm
Если есть символы типа &, то лучше делать
rawurlencode(rawurlencode($search_str))
А происходит, видимо, потому, что браузер автоматом один раз декодирует. Если скачать страницу качалкой и посмотреть исходник, то там урл закодированный.