Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обход разницы кодировки БД и поля ввода 
:(
    Опции темы
KoLiZeI
Дата 26.12.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Проблема в следующем!  
У меня стоит БД MySQL с кодировкой w-1251 и весь сайт в такой же кодировке, и логично что когда я пользуюсь поиском по сайту перевожу сравниваемые строки в нижний регистр и он у меня отлично ищет при запросе "м" слова в которых встречается и маленькая и большая буква, но на сервере где висит сайт кодировка БД  UTF-8 и при вводе "м" он не находит  слова в которых встречается "М", такая проблема только с русскими символами! Как можнорешить эту проблему iconv() у меня не хочет работать (
PM MAIL WWW ICQ Skype   Вверх
KoLiZeI
Дата 27.12.2007, 16:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Скажите хотя бы в чем проблема у меня на работе поиск не учитывает регистр, а у хостера на сервера сайт стал чувствительным к регистру, посмотрел настройки БД, сопоставление там правильное стоит хотя и основная кодировка uTF, попробовал у себя поменять   кодировку БД, всё равно всё нормально работает, это может быть из - за того что у них никсы стоят или из-за чего другого?
PM MAIL WWW ICQ Skype   Вверх
skyboy
Дата 27.12.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



есть группа функций для работы с многобайтовыми строками.
аналог strtolower для многобайтовых строк - mb_strtolower.
попробуй заменить.
кроме того, strtolower информацию о соотвестсвии букв в разных регистрах черпает из установленной текущей локали, которую можно установить при помощи setlocale
Впрочем, опыт проблем с кодировками у меня оочень небольшой, потому если предложенные направления окажутся безперспективными, то приведи программный код. посмотрим, где может быть проблема.
PM MAIL   Вверх
KoLiZeI
Дата 27.12.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



проблема решена, у меня на пхп версии 4.4.2. почему то не работала mb_strtolower поэтому не мог найти другого решения, но на сервере все нормально заработало!
PM MAIL WWW ICQ Skype   Вверх
KoLiZeI
Дата 18.3.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Опять какая-то фигня с кодировкой, нужна помощь! 
Собственно есть база, в ней весь текст в дурацкой кодировке latin1_bin Когда её просматриваю весь русский текст выводится знаками вопроса "?????", делаю её дамп, весь текст переношу в хеше, если без хеша опять все вопросиками идёт. Переношу дамп себе в базе опять всё вопросиками, но и выводится весь русский текст вопросами, а если заносить новые поля то они уже нормально выводятся! Как это исправить помогите! И Set names и set charset ставил, всё равно вопросами все!
PM MAIL WWW ICQ Skype   Вверх
KoLiZeI
Дата 18.3.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



2 вариант: подключаюсь к той базе. У них она выводится нормально у меня всё вопросами! В чем проблема?
PM MAIL WWW ICQ Skype   Вверх
awers
Дата 18.3.2008, 14:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Код

mysql_query("SET character_set_client='windows-1251'");
mysql_query("SET character_set_connection='windows-1251'");
mysql_query("SET character_set_results='windows-1251'");

PM MAIL WWW ICQ Skype   Вверх
Feldmarschall
Дата 18.3.2008, 16:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



awers, во-первых, все эти три запроса заменяет один SET NAMES
во-вторых, мускуль не знает такой кодировки, как windows-1251, а знает cp1251
а в-третьих, и в самых главных, настройка соединения клиента помогает не всегда, и здесь мы видим именно такой случай.

Поэтому, чтобы не было вопросов, то
Код

mysql_query("SET NAMES latin1");

а чтобы сделать се по-человечески - настраивать, как написано по ссылке выше.



PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0489 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.