Помогите настроить кодировку в локале дабы спасти мой умерший сайт, видимый как корявость.
MySQL 4.1, настройки my.ini: default-character-set=utf8.
character set client utf8
character set connection utf8
character set database utf8
character set results utf8
character set server utf8
character set system utf8
character sets dir C:\Program Files\MySQL\MySQL Server 4.1\share\charsets/
collation connection utf8_unicode_ci
(Глобальное значение) utf8_general_ci
collation database utf8_general_ci
collation server utf8_general_ci
Php 5
default_charset utf8
mbstring.detect_order auto auto
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding utf8 utf8
mbstring.language Russian Russian
mbstring.substitute_character no value no value
Дамп базы данных
DROP TABLE IF EXISTS `access`;
CREATE TABLE `access` (
`aid` tinyint(10) NOT NULL auto_increment,
`mask` varchar(255) NOT NULL default '',
`type` varchar(255) NOT NULL default '',
`status` tinyint(2) NOT NULL default '0',
PRIMARY KEY (`aid`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
База данных создана в кодировке utf8_general_ci.
Что делаю не так?
Спасибо.
з.ы. Вставка заклинаний в .htaccess не помогла.
Комментарии
все, что локализовано друпалом, читается, но тела нод - все нечитаемы.
В каком направлении работать?
а я не пойму зачем эксперементировать, когда utf-8 расширена и имеет больше символов чем кодировки win-cp-1251
Ребята за юникодом будущее
Если SHOW CREATE TABLE показывает какую-то дефолтную кодировку, то это не факт, что там лежит информация в этой кодировке. Если я правильно понял, то кодировка у тебя cp1251. ТАК? Тогда тебе нужно переконвертировать все таблицы из cp1251 в юникод и забыть за cp1251. Единственное, убедись, что у тебя не latin1.
Видимо проблема в том, что при импорте дампа в базу данных не указывается кодировка, в которой закодирован дамп.
Если есть доступ к шеллу предлагаю сделать так:
mysql -u юзер -p -D имя_бд --default-character-set=utf8 < бекап.sql
вводим пароль.
ЗЫ. Естественно, что все старые записи в базе надо предварительно удалить.
еще одно СПАСИБО!!!!
а то я чуть с ума не сошла, месяц не разгибаясь рисовала и писала в денвере.....
ай-яй-яй... не заметил что сервант вендовый... В принципе, если маздай поддерживает конкатенацию ввода-вывода, то данный метод должен работать и в нем.
Еще для импорта можно использовать Sypex Dumper, у него можно выбирать кодировку при импорте.
браузер при импорте надо переводитьв нужную кодировку
Браузер не имеет никакого отношения к клиенту СУБД. Потому что клиент СУБД работает на сервере, а браузер - на клиенте
mysql -u юзер -p -D имя_бд --default-character-set=utf8 < бекап.sql
Сработало!
Спасибо!!! а то я уже порядком пропсиховывала - два года работы коту под хвост.
А как заливался дамп изначально? Через PMA?
Подробно излагалось здесь
http://drupal.ru/node/7644
Изначально заливался через shell без указания дефолтной кодировки.
Возник дамп, когда у меня все на площадке скукожилось из-за перехода на MySQL 5 и PHP 5.
Пришлось просить у хосткомпании доапгрейдный дамп и заливать его в локале.
>>Сработало!
>>Спасибо!!! а то я уже порядком пропсиховывала - два года работы коту под хвост.
Пожалуйста! Понимаю состояние, когда-то сам психовал заливая бекап расположенный на сервере, через ssh и удивлялся почему у меня на месте контента какие-то кракозябры. Потом выяснилось что на сервере вообще кодировка по умолчанию какая-то iso***** и то, какая кодировка у меня установлена, сервер это мало волнует.
После этого переодически заглядываю на http://www.mysql.ru/docs/
И на последок заметка, которую я бы назвал "Путь джедая, или что делать если нет бекапа" В некоторых случаях может помочь.