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 :: Проблема с кодировкой PHP + MySQL
Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2007 Откуда: Раменское
Помог: 0 раз(а)
Уже давно сделал поиск смайлов на сайте по ключевым словам, но вот в процессе использования этого скрипта многие не находят то, что ищут.
Например –в WIN1251 выглядит вот так - репа
А вот в кодировке Юникод (UTF8-8) означает Репа
Видимо у человека который осуществляет поиск по умолчанию установлена кодировка (UTF8-8) отсюда и возникает проблема т.е. такого слова в базе нет и скрипт сообщает, что мол нет такого.
Причём заметил что ищут с различными кодировками.
не очень хорошо знаю PHP, пожалуйста помогите решить эту проблему готовым куском кода.
Покинул форум
Сообщений всего: 615
Дата рег-ции: Июль 2006 Откуда: Оттуда !
Помог: 0 раз(а)
Мало чего понял, покажи сам скрипт поиска, или обьясни как он работает.
Shatun
Отправлено: 29 Апреля, 2007 - 14:43:24
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2007 Откуда: Раменское
Помог: 0 раз(а)
-SCHATTEN-, благодарю за то, что желаешь помочь!
Так понимаю перед тем как запускается поиск в БД
$query должна быть в кодировке WIN 1251
может использовать
$query = convert_cyr_string ($query,w,k)
но у меня ничего не получается
код скрипта здесь – http://www[dot]animac[dot]ru/search[dot]txt
удалил некоторые функции (которые не имеют отношения к поиску) и для восприятия (моего кривого кода) прокомментировал действия
valenok
Отправлено: 29 Апреля, 2007 - 18:41:06
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
$result=mysql_query("SELECT searh_query FROM ".$prefix."_imagegallery_search WHERE searh_query = '".$query."' ");
----- Truly yours, Sasha.
Shatun
Отправлено: 30 Апреля, 2007 - 08:57:45
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2007 Откуда: Раменское
Помог: 0 раз(а)
Ничего не выходит.
Может неправильно проверяю на локалке…
Что делаю:
Открываю страницу с поиском и принудительно указываю другую кодировку. Например - KOI8-R
(вид > кодировка >кирилица KOI8-R )
затем в поле поиска ($query) пишу привет жму найти, ничего не происходит.
Пишет - Искали: РТЙЧЕФ
Т.е. получается, что не перекодирует перед тем как искать привет в БД
нашёл готовый скрипт - перекодирование в нужную кодировку
может им можно воспользоваться заменив в нём $text на $query?
Попробовал, ничего не получилось Может нужно ещё что добавить? Или не правильно тестю работу скрипта?
Подскажите люди добрые как кодировку ненужную побороть..
evgenijj
Отправлено: 30 Апреля, 2007 - 10:24:47
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Но вообще, если строка, кодировку которой требуется определить, состоит всего из одного слова, вероятность неправильного определения кодировки будет велика.
Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2007 Откуда: Раменское
Помог: 0 раз(а)
Уххх... ЁПРСТ! evgenijj спасибо огромнейшее!
Как раньше не нашёл эту инф.
Пробую. Если получится отишись в этом посте.
Shatun
Отправлено: 05 Мая, 2007 - 00:19:35
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2007 Откуда: Раменское
Помог: 0 раз(а)
Не получается
Сам скрипт работает прекрасно..
Т.е. если создаю файл win.php в который полностью копирую библиотеку -
a.charset (скаченную Здесь )
а в самом конце пишу в различных кодировках
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.