2012-02-29 3 views
1

У меня возникла странная проблема с кодировкой файлов при экспорте базы данных.Кодирование теряется при экспорте базы данных

Проще говоря,

Экспорт базы данных не сохраняются символы Unicode. Экспорт отдельных таблиц DO сохранить символы Юникода.

Файл sql-файла дампа, который я получаю, когда я экспортирую его как целую базу данных, даже имеет набор символов по умолчанию для utf8, например, ниже.

CREATE TABLE content_field_tamil (vid INT (10) без знака NOT NULL по умолчанию '0', nid INT (10) без знака NOT NULL по умолчанию '0', field_tamil_value LONGTEXT, field_tamil_format INT (10) без знака по умолчанию NULL, PRIMARY KEY (vid), KEY nid (nid)) ENGINE = MyISAM DEFAULT CHARSET = utf8;

Sample значение поля поля 'field_tamil_value':

‡ AEA ‡ Æ ± ‡ Oc ‡ Æ ± ‡ Ææ ‡ Æ∞ - Это то, что я получаю, когда я экспортировать его в виде целой базы данных в файле .sql , Это неправильно закодировано. உற்றார் - Это то, что я получаю, когда я экспортирую отдельные таблицы. И это правильно.

Я не понимаю, почему он кодируется по-разному, когда я экспортирую его как целую базу данных. И он делает то же самое в моей тестовой базе localhost. Любая помощь действительно оценена парнями.

+0

Я не знаю, о MySQL достаточно подробно, чтобы дать полный ответ, но я бы предложил расследовать использование 'CHARACTER SET' и/или' COLLATE' при указании ваших типов данных. – MatBailie

ответ

1

Я не уверен, что вы пробовали это, но кодировка в базе данных установлена ​​в utf8? Например. а не только таблицы.

CREATE DATABASE db_name 
    [[DEFAULT] CHARACTER SET charset_name] 
    [[DEFAULT] COLLATE collation_name] 

ALTER DATABASE db_name 
    [[DEFAULT] CHARACTER SET charset_name] 
    [[DEFAULT] COLLATE collation_name]