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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: URL и кодировка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Старая добрая проблема костылей...
Viper
Отправлено: 28 Апреля, 2010 - 09:49:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Столкнулся с такой бедой...
Отправляю данные скрипту через запрос вида
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); запнется... ?!


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
JustUserR
Отправлено: 28 Апреля, 2010 - 09:56:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Viper пишет:
Оказалось что $_REQUEST['searchword'] приезжает в cp1251
Если в urlencoded-виде данные в шестнадцатиричных цифрах расплагаются в двух разрядах - то это очевидно ASCII-кодировка причем какая именно зависит от параметров браузера Но вы можете явно перекодровать приходящие данные с помощью iconv


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Viper
Отправлено: 28 Апреля, 2010 - 10:24:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




JustUserR это то понятно что ASCII, непонятно почему если вручную дописать в строку запроса русский текст, то браузер автоматически кодирует не в utf-8, а в cp1251...


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
EuGen Администратор
Отправлено: 28 Апреля, 2010 - 11:17:17
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




В моем случае (ОС Linux) кодируется строго в UTF
Можете использовать, как упоминалось, iconv в скрипте или же encodeURI для javascript (если ссылка генерируется там динамически)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Viper
Отправлено: 28 Апреля, 2010 - 16:23:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




EuGen да вы правы. так и сделал.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
JustUserR
Отправлено: 29 Апреля, 2010 - 13:31:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Viper пишет:
JustUserR это то понятно что ASCII, непонятно почему если вручную дописать в строку запроса русский текст, то браузер автоматически кодирует не в utf-8, а в cp1251...
Кодировка Windows-1251 является родной кодировкой для графического/пользовательского интерфейса - поэтому подставляется именно она Другое дело что внутри самой HTML-страницы уже можно установить соответствующую кодировку - в том числе отдельно для ссылок и форм за счет ее динамической проверки и преобразования


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB