PAG
Новичок
utf8 в php и mysql
Опишу всю ситуацию в подробностях, чтобы сразу стало понятно.
Есть скрипт, который работает с текстом, который он получает из различных источников, конвертирует все это дело в utf8 через iconv и складывает в базу. В броузер тоже выдает в той же кодировке (заголовки нормальные,все работает).
Проблема возникла, когда я решил сделать еще и поиск по базе. Выяснилось, что стоит старая версия mysql, которая кодировки не поддерживает (т.е. таблицы были первоначально по-умолчанию в cp1251_general_ci
Провайдеру была написана бумага о переносе на более продвинутый сервер с MySQL 4.1.Х
Естественно, базы скопировались так, как и были. Скрипт продолжал работать, а вот поиск - нет.
Самое интересное, что под те признаки, которые описаны в FAQе не подходит, т.к. даже phpMyAdmin тест нормально не показывает, он хорошо виден только при выводе в броузер.
Я попробовал конвертировать все талицы и все текстовые поля в кодировку utf8_general_ci.
Таблицу с данными почистил, чтобы добавлялись уже новыми, но не тут то было. Они теперь и выводиться нормально перестали - вместо букв "И" и "ш" выводятся знак вопроса и кракозябл.
Я раньше с этой кодировкой вообще не работал. Подскажите, что я делаю не так?
А с поиском еще такая заморочка: после получения данных с формы поиска, я регулярным выражением вырезаю все лишние символы:
Но вот русские вообще удаляются. Может быть при работе с этой кодировкой следует поступать иначе?
(К FAQам просьба не посылать, я их переситал не один раз.)
Заранее благодарен.
-~{}~ 17.07.06 20:19:
Неужели никто не поможет?
-~{}~ 17.07.06 22:33:
Разобрался сам, вопрос снят.
Опишу всю ситуацию в подробностях, чтобы сразу стало понятно.
Есть скрипт, который работает с текстом, который он получает из различных источников, конвертирует все это дело в utf8 через iconv и складывает в базу. В броузер тоже выдает в той же кодировке (заголовки нормальные,все работает).
Проблема возникла, когда я решил сделать еще и поиск по базе. Выяснилось, что стоит старая версия mysql, которая кодировки не поддерживает (т.е. таблицы были первоначально по-умолчанию в cp1251_general_ci
Провайдеру была написана бумага о переносе на более продвинутый сервер с MySQL 4.1.Х
Естественно, базы скопировались так, как и были. Скрипт продолжал работать, а вот поиск - нет.
Самое интересное, что под те признаки, которые описаны в FAQе не подходит, т.к. даже phpMyAdmin тест нормально не показывает, он хорошо виден только при выводе в броузер.
Я попробовал конвертировать все талицы и все текстовые поля в кодировку utf8_general_ci.
Таблицу с данными почистил, чтобы добавлялись уже новыми, но не тут то было. Они теперь и выводиться нормально перестали - вместо букв "И" и "ш" выводятся знак вопроса и кракозябл.
Я раньше с этой кодировкой вообще не работал. Подскажите, что я делаю не так?
А с поиском еще такая заморочка: после получения данных с формы поиска, я регулярным выражением вырезаю все лишние символы:
PHP:
preg_replace("/([^\w-_ ]*)/msi","",$str)
(К FAQам просьба не посылать, я их переситал не один раз.)
Заранее благодарен.
-~{}~ 17.07.06 20:19:
Неужели никто не поможет?

-~{}~ 17.07.06 22:33:
Разобрался сам, вопрос снят.