We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 12437
    • 10 Posts
    Сделал сайтик на modx 9.0.5, в панели управления кодировка utf8, в БД сопоставление cp1251_general_ci (он сам так базу построил, пробовал менять и на БД и на таблицы сопоставление -- ноль эффекта)

    На сайте все выводится корректно, все символы.

    Я не могу сделать mysqldump! Там кракозябры сплошные! Даже в phpmyadmin кракозябры, хоть как угодно меняя там кодировку..

    примерно вот так выглядит текст "Рћ ресторане"

    Где-то кодировка ломается, но не пойму где. Может кто сталкивался? При этом, напоминаю, сам сайт работает нормально.
      • 785
      • 2,113 Posts
      Quote from: htaccess at Sep 28, 2007, 04:39 AM

      ...в панели управления кодировка utf8, в БД сопоставление cp1251_general_ci ...
      Так именно в этом и проблема. Нужно сначало было создать базу и задать правильное сопоставление, а потом устанавливать MODx.
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 12437
        • 10 Posts
        т.е. если я сейчас поменяю сопоставление на utf8_general_ci в бд и таблицах, а потом буду туда загонять новые данные, то оно будет работать нормально?

        upd: попробовал сменить на utf8 -- новые странички с такой же фигней sad

        как мне теперь перекодировать то, что есть? Нормально инфу из бд видит только modx sad
          • 785
          • 2,113 Posts
          Еще надо в файле manager/includes/config.inc.php прописать
          $database_connection_charset = ’utf8’;
          Почему-то автоматически это не делается.

          Если все вначале номально сделать, гарантированно все должно работать, но если исправлять, лично я не знаю, как все получится. Перекодировка - дело тонкое. Вообще можно экспортировать базу и посмотреть (и исправить, если нужно), что там в файле. У меня что-то вроде этого получается (фрагмент):

          DROP TABLE IF EXISTS `modx_document_groups`;
          CREATE TABLE `modx_document_groups` (
            `id` int(10) NOT NULL auto_increment,
            `document_group` int(10) NOT NULL default '0',
            `document` int(10) NOT NULL default '0',
            PRIMARY KEY  (`id`),
            KEY `document` (`document`),
            KEY `document_group` (`document_group`)
          ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Contains data used for access permissions.' AUTO_INCREMENT=10 ;

          Важно что DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci а также то, что содержимое полей действительно в формате UTF8.
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации
            • 33694
            • 742 Posts
            У меня была такая же проблема: сайт работает в UTF-8, а база 1251. Соответственно, контент в этой базе лежит в UTf-8 — отсюда и крякозяблы. $database_connection_charset в конфиге было присвоено ’windows-1251’.

            Один местный гуру wink подсказал мне хитрый SQL запрос, которым я вылечил всю базу буквально за 10 минут. Запрос этот, правда, пришлось делать к каждой таблице отдельно, но благо таблиц содержащих кирилицу (её то и нужно исправлять) оказалось не так много.
            После обработки, присвоил $database_connection_charset utf8 и успешно слил нормальный дамп.


            Сам SQL-запрос на память не помню, а в логах он только на рабочей аське. Т.ч. ждёмс его сюда smiley
              • 897
              • 1,620 Posts
              ALTER TABLE modx_site_content CHANGE pagetitle pagetitle BLOB;
              ALTER TABLE modx_site_content CHANGE pagetitle pagetitle TEXT CHARACTER SET utf8
              


              это имеется ввиду?
                "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                Не используйте Revo для "просто сайтов". Используйте Evo

                Who can defeat the Russian bear?
                • 33694
                • 742 Posts
                > это имеется ввиду?
                Именно!

                Вместо modx_site_content нужно подставлять нужную таблицу, а вместо pagetitle (оба раза) поле которое нужно исправить, например content. И так для всех таблиц и всех полей содержащих кирилицу.
                Потом сливаем дамп, и в оставшихся полях исправляем строки
                DEFAULT CHARSET=windiws-1251
                на
                DEFAULT CHARSET=utf8
                , ну и все остальные места, ответственные за кодировку.
                  • 897
                  • 1,620 Posts
                  если кому нужно описание, то
                  первая строка переводит то что у вас в поле в реальные биты, вторая пытается эти биты понять
                    "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                    Не используйте Revo для "просто сайтов". Используйте Evo

                    Who can defeat the Russian bear?
                    • 12437
                    • 10 Posts
                    Спасибо вам большое!!!!