Коллеги, помогите советом!
Пытаюсь перетащить уже работающий сайт с mysql 3 на mysql 4.
База данных создается через панель. До создания таблиц выполнил:
alter database character set UTF8 col...
После чего произвел импорт из файла с дампом, полученного из mysql 3 версии. Результат ужасен, можете убедится здесь: http://kwinto.msk.ru/ - это временный сайт.
Посмотрел, что находится в таблицах базы - некоторые буквы отображаются в виде квадратиков. например - "ш"
В .htaccess стоит:
CharsetRecodeMultipartForms off
charsetdisable on
AddDefaultCharset utf-8
Следую некоторым советам из некоторых топиков, пробовал модифицировать db_connect - добавлял строку mysql_query('SET CHARACTER SET utf8;',$connection); - получал default тему drupal с кучей ошибок над шапкой и кракозябрами вместо текста, хотя переводы строк отображаются нормально
Заранее благодарен
Комментарии
Сделай еще altet database default charset utf8
Перед импорта дампа.
А строка mysql_query("SET CHARACTER SET utf8") вот так выглядит.
Nick, спасибо за ответ!
а в чем разница между
altet database default charset utf8
и
alter database character set UTF8 ?
В DEFAULT? - я так понял, что это необязательно - слово исключительно для некой совместимости. Я не прав?
А для mysql_query(“SET CHARACTER SET utf8”) $connection не нужно? Или дело в том, что не нужно ";" добавлять?
Нет. Дело в том, что в mysql помимо кодировки БД, есть еще кодировка таблицы, и, мне тут сказали (сам я на это не натыкался), даже кодировка столбца. Зачем весь этот зоопарк - я не знаю, знаю лишь, что он создает вагончик проблем... Вот default обозначает, дефолтная для всех вновь созданных таблиц...
Мне кажется, что вообще ни к чему было давать пользователю выбирать в какой кодировке хранить информацию. Сделать, чтобы все хранилось в utf8 или даже utf16 (для большей совместимости) и забить это в код гвоздями, и дать пользователю рычаг, которым бы он мог управлять кодировкой ввода/вывода. И обязательно у этого рычага должно быть положение "сохранить как есть" и "отдать как есть" (без перекодировки, как хранится в БД).
Именно.
http://ru.php.net/manual/en/function.mysql-query.php :