Правильное создание кодировки базы на хостинге, Марк, 06-Апр-09, 14:02 [смотреть все]Начитался по кодировкам, пришел к мысли, что надо спросить совета. Хочу создать базу с нормальным функционированием русского языка, как в отображении phpmyadmin, так и на хостинге. Ну и при бекапе БД. ---------------- Версия сервера: 4.1.22-standard Версия протокола: 10 Сервер: Localhost via UNIX socket MySQL-кодировка: UTF-8 Unicode (utf8) --------------- Сейчасв phpmyadmin я могу изменить следующие параметры 1. Сопоставление соединения с MySQL: (кодировка)? 2. Операции >> Сравнение (кодировка)? 3. Ну и при создании базы из дампа мгу указать кодировку (только таблицы -данных нет) (кодировка?) --- 4. Естественно в отображении сайта тоже укажу соответствующую кодировку --------- Вопрос, какие кодировки должны стоять во всех четырех случаях, учитывая, что кодировка MySQL-кодировка: UTF-8 Unicode (utf8)- я изменить не могу? -- Спасибо.
|
- Правильное создание кодировки базы на хостинге,
angra, 02:49 , 07-Апр-09 (1)В первую очередь стоит убедится, что данные в таблицах соответствуют кодировке, указанной при создании таблиц. Если это так, то все остальные параметры могут быть произвольными, мускул сам сделает все нужные преобразования, особенно если внутренняя кодировка таблиц utf-8.
- Правильное создание кодировки базы на хостинге,
Марк, 13:29 , 07-Апр-09 (2)>В первую очередь стоит убедится, что данные в таблицах соответствуют кодировкеСпасибо. ------- А в дампе при создании таблиц есть какие то маркеры, которые указывают на тот или иной тип данных, которые будут хранится в этой таблице, т.е как определить, потребуется ли этой таблице кодировка например cp1251_general_cs для все случаев? Я так понял для данных цифрового формата неважна кодировка или я неправ? И у меня пример некоторые таблицы в конце отличаются вот такой строкой ) TYPE=MyISAM и ------------------ ) ENGINE=MyISAM это имеет значение? те задание таблицы отличается способом задания таблицы (TYPE и ENGINE) -----
- Правильное создание кодировки базы на хостинге,
Марк, 13:35 , 07-Апр-09 (3)те я насильно пропишу в конце каждой создаваемой таблицы (нулевой дамп без данных) строку ) TYPE=MyISAM DEFAULT CHARSET=cp1251 ; все как бы будет правильно осталось определить к каким таблицам эту строку надо добавить, тк у меня по умолчанию стоит вот так ) TYPE=MyISAM AUTO_INCREMENT=1 ; и естественно кодировка берется с сервера, в результате в дампе базы, и в phpmyadmin e-все в кракозяблах
- Правильное создание кодировки базы на хостинге,
angra, 00:18 , 08-Апр-09 (4)TYPE устаревшая, ENGINE рекомендуемая и с какой-то версии единственно верная директива. Научись работать с консольным мускулевым клиентом. Прочитай про set names и show create table. Поэкспериментируй на свеже-созданной таблице и все прояснится. Различные поля могут иметь разные кодировки, то есть ничто не мешает иметь в одной таблице поле с cp1251 и в ней же поле с utf8. При условии правильно записанных данных и верного set names работать будет без проблем. Если в скрипте не делается дополнительных перекодировок, то кодировка указанная в http заголовках должна совпадать с кодировкой указанной через set names. В большинстве случаев utf-8 наиболее подходящая для текстовых полей в таблице. Что, повторюсь, не мешает, установив set names cp1251, работать с данными в cp1251. При использовании ajax опять таки лучше будет utf-8.
|