The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Правильное  создание кодировки базы на хостинге, !*! Марк, 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.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру