За последние 24 часа нас посетили 17720 программистов и 1283 робота. Сейчас ищет 1391 программист ...

Проблема с кодировкой таблиц БД MySQL

Тема в разделе "MySQL", создана пользователем enshtein, 23 янв 2007.

  1. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    На хосте под MySQL стоит CMS Joomla, кодировка всех таблиц принадлежащих CMS Joomla стоит в latin1_swedish_ci (видно хостеру шведский нравиться), возникла проблема переноса Jooml'ы на локальный хост (Denwer). Делаю дамп на хосте получаю файл .sql d котором вместо русских букв - крякозяблины, а в Jommla "?????????????"
    Как исправить проблему?
     
  2. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    тока что попробовал перенести на другой хост - тоже самое в итоге!
    про Денвер я упомянул как пример! Это не решает проблемы на хостинге! Кароче мне хотелось бы получить на выходе из phgMyAdmin нормальный (здоровый - т.е. без битых символов) дамп базы данных!
     
  3. Anonymous

    Anonymous Guest

    в cp1251 - не получится. Возмите другой дампер, или работайте с utf-8
     
  4. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    - какой?
    и разве дамперы все эти не используют одни и теже параметры кодировки которые в конфиге MySQL по умолчанию прописаны?
     
  5. Anonymous

    Anonymous Guest

    нет.
    http://zapimir.net/skdumper/
     
  6. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
  7. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
  8. Anonymous

    Anonymous Guest

    на shared-хостингах к нему редко имеешь доступ...
     
  9. joost

    joost Guest

    Если часто надо делать дамп, то можно написать свой скрипт для выгрузки!
     
  10. psoi

    psoi Активный пользователь

    С нами с:
    25 июн 2006
    Сообщения:
    65
    Симпатии:
    0
    А можно как-то поменять кодировку по умолчанию самой базы данных майскьюэль уже после установки. У меня линукс федора 6. Устанавливал апачь, пхп, мускль из дистрибултива. Мне по умолчанию поставило кодировку латин_сведиш. Как (в каком файле) поменять этот стандартный латинсведиш на ср1251?? Чтобы в будущем все таблицы создавались в ср1251???
     
  11. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    my.cnf [server]:
    default-character-set=cp1251
     
  12. Anonymous

    Anonymous Guest

    Кстати, на рута не действует. У него всегда latin1 по умолчанию
     
  13. Rus

    Rus Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    44
    Симпатии:
    0
    Адрес:
    Шарыпово, Красноярский край
    народ подскажите какую по умолчанию кодировку ставить на MySQL сервак? У меня всегда latin1 стоял. А тут недавно принесли базу с 1251 кодировкой ну и начались "?????". Сказали что у меня сервак не правильно настроен :( , что надо cp1251 по дефолту ставить! (cервер по виндой) Так ли это?
     
  14. Anonymous

    Anonymous Guest

    1. Внутренее хранение данных в MySQL почти всегда в UTF-8.
    2. Нет, неправильно сказали. По хорошему сервак должен быть всеми местами на UTF-8 настроен быть — во избежание будущего геммороя.
     
  15. Maksi

    Maksi Активный пользователь

    С нами с:
    7 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Помогите советом светлые умы...
    залили сайт на сервер, залили базу, прописали к ней путь, но вместо некоторых букв пишет ????? . Судя по кодам, в страничках прописан
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    в базе смотрел, там:
    Сравнение cp1251_general_ci, именно в самих таблицах в базе прописано, а вот на главной мускл по умолчанию для баз стоит utf8_general_ci
    вопрос: как и где поправить, чтобы на страничках мне писало как надо

    з.ы. скидываю главную страничку мускл, может чем поможет....
    [​IMG]
     
  16. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    PHP:
    1. mysql_query("set names cp1251");
    перед залитием базы.
     
  17. Anonymous

    Anonymous Guest

    это не главная страничка мускул, это ПМА. Не пользуйтесь больше этой хренью для cp1251 - не получится.
     
  18. Maksi

    Maksi Активный пользователь

    С нами с:
    7 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Ну выбора у меня нет, приходится пользоваться именно этой хренью :)
    Мне интересен выход из данной ситуации, способ, описанный выше поможет точно?
    и где именно это вписывать?
     
  19. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Maksi

    попробуйте перекодировать исходный файл.
    попробуйте использовать Navicat например.
     
  20. Maksi

    Maksi Активный пользователь

    С нами с:
    7 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Думаете мне это о чем-то говорит? Я 100% новичек в этом деле, мне дали сайт+базу и велели сделать :shock:

    Может кто в аське сможет в диалоге мне доступно объяснить, буду очень признателен :oops:
     
  21. D.Lans

    D.Lans Активный пользователь

    С нами с:
    31 июл 2006
    Сообщения:
    345
    Симпатии:
    0
    Да не мучайте вы человека.

    Maksi
    скрин ты привел из phpMyAdmin - это отличный скрипт для управления MySQL базами данных. С ним удобнее, чем с обычный mysql коммандной строкой - всегда видно сколько баз, какие в них таблицы, кодировки и т.д. и все это в удобном интерфейсе.

    Приведенную тебе Hight'ом команду нужно вписывать в окошко, которое появляется после нажатия кнопки "окно запроса" (она квадратной формы и находится чуть выше фразы "Пожалуйста, выберите базу данных").

    Но
    Код (Text):
    1. mysql_query("set names cp1251");
    прописывать надо где-нибудь в PHP скрипте, для PMA нужно так:
    Код (Text):
    1. set names cp1251;