Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: URL и кодировка
Форумы портала PHP.SU » PHP » Программирование на PHP » URL и кодировка

Страниц (1): [1]
 

1. Viper - 28 Апреля, 2010 - 09:49:52 - перейти к сообщению
Столкнулся с такой бедой...
Отправляю данные скрипту через запрос вида
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://localhost/sys/index.php?task=search&param=suggest&searchword=%E7%E0%F7%E0%F0%EE%E2%E0%ED%ED%E0%FF


получаю searchword и тулю в запрос к БД. в результат получаю большой и красивый болт с резьбой.
БД и все файлы скриптов в utf-8. ставил SET NAMES, делал header... проверил все что только можно было... оказалось что $_REQUEST['searchword'] приезжает в cp1251

Сервер на windows xp. подсказали что проблема кроется в виндовозной версии апача.

Что же можно такого сделать чтобы нормально заставить работать?

PS! Нарыл функцию тут http://club[dot]shelek[dot]ru/viewart.php?id=271 но несколько не уверен в строке $str = ... ведь если приедет вдруг utf-8, то iconv("UTF-8", "UTF-8//IGNORE", $str); запнется... ?!
2. JustUserR - 28 Апреля, 2010 - 09:56:35 - перейти к сообщению
Viper пишет:
Оказалось что $_REQUEST['searchword'] приезжает в cp1251
Если в urlencoded-виде данные в шестнадцатиричных цифрах расплагаются в двух разрядах - то это очевидно ASCII-кодировка причем какая именно зависит от параметров браузера Но вы можете явно перекодровать приходящие данные с помощью iconv
3. Viper - 28 Апреля, 2010 - 10:24:14 - перейти к сообщению
JustUserR это то понятно что ASCII, непонятно почему если вручную дописать в строку запроса русский текст, то браузер автоматически кодирует не в utf-8, а в cp1251...
4. EuGen - 28 Апреля, 2010 - 11:17:17 - перейти к сообщению
В моем случае (ОС Linux) кодируется строго в UTF
Можете использовать, как упоминалось, iconv в скрипте или же encodeURI для javascript (если ссылка генерируется там динамически)
5. Viper - 28 Апреля, 2010 - 16:23:24 - перейти к сообщению
EuGen да вы правы. так и сделал.
6. JustUserR - 29 Апреля, 2010 - 13:31:04 - перейти к сообщению
Viper пишет:
JustUserR это то понятно что ASCII, непонятно почему если вручную дописать в строку запроса русский текст, то браузер автоматически кодирует не в utf-8, а в cp1251...
Кодировка Windows-1251 является родной кодировкой для графического/пользовательского интерфейса - поэтому подставляется именно она Другое дело что внутри самой HTML-страницы уже можно установить соответствующую кодировку - в том числе отдельно для ссылок и форм за счет ее динамической проверки и преобразования

 

Powered by ExBB FM 1.0 RC1