Браузер кодирует русский текст в строке запроса юникодом

Браузер кодирует русский текст в строке запроса юникодом

Здравствуйте.
Помогите мне с небольшой проблемкой.

Есть форма, она отправляет данные GET'ом. Если ввести в неё русский текст то она переходит на страницу типа:

http://localhost/test.php?q=%F2%E5%EA%F1%F2 - (q = "текст" - windows-1251)

но если написать "текст" прямо в строке запроса, то она меняет урл на
http://localhost/test.php?q=текст - (q = "текст" - utf-8)

можно ли как нибудь заставить браузер передавать текст в windows-1251?
Заранее спасибо.
 
Чтобы если кто то напишет текст вручную в адресной строке он пришел пхп скрипту в windows-1251. Определять кодировку вручную и перекодировать не хоцца.
 

rooot

Новичок
ее и не нужно определять, выведи
print_r($_GET)
а далее делай нужные тебе операции
 

rooot

Новичок
или ты не слышал про $_SERVER['QUERY_STRING'] ?

-~{}~ 20.05.07 20:54:

Фанат
типа бабка говорить будет?
 

Фанат

oncle terrible
Команда форума
Евгений Петров
насколько я знаю, заставить браузер передавать текст в другой кодировке в таких случаях нельзя.
Тем более - средствами сервера.
так что, остаются только заплатки с косвенным определением кодировки.
по формату символов, к примеру
 

programmer_2006

Новичок
Автор оригинала: Фанат
Евгений Петров
насколько я знаю, заставить браузер передавать текст в другой кодировке в таких случаях нельзя.
Тем более - средствами сервера.
так что, остаются только заплатки с косвенным определением кодировки.
по формату символов, к примеру
Фанат, раскажи про "заплатки с косвенным определением кодировки" точнее дай ссылки на функции или классы которые определяют кодировку и преобразовывают в то что надо удаляя плохие символы. Конечно если знаешь такие...
Заранее благодарен.
 
попробуйте сделать такой скрипт:
Код:
<?
    echo $_GET['q'];
?>
и вызвать его потом так:
http://localhost/test.php?q=Текст
А потом сделать форму
Код:
<form action="/test.php" method="get">
<input type="text" name="q" value="Текст" />
<input type="submit" value="Send" />
</form>
В первом случае у меня выводит белеберду на юникоде, во втором "Текст".
 

Anarki

Новичок
Попробовал...
Во втором случае браузер отправляет данные в той кодировке в которой была страница с формой.

А в первом, он отсылает в кодировке своей по умолчанию скорее всего, для Оперы это unicode.

Быть может вставлять в строку запроса уже URL кодированый параметр? :)
 
Некодированные адреса смотрятсья красивее. (если сделать на странице линку с таким адресом то она преобразовывается в юникод), решил все же не извращаться и определять кодировку в скрипте. :) Спасибо всем большое!
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Еще есть проблема с кириллическими ссылками.
Не-urlencode-иные ссылки с символами в win-1251 гугл может в конвертировать и в результатах поиска выводить в UTF-8 - т.е. ссылки будут битые.

Точно не помню, но нутром чую, что кириллица в URI - не по стандарту.
 

fixxxer

К.О.
Партнер клуба
есть простой способ определения кодировки - добавлять hidden-поле с заранее известным текстом. :)
 
Сверху