Встепление.
не знаю по каким причинам, но все еще встречаются сайты и веб-мастера, которые используют cp1251. В этом случаи при работе с modx приходится решать массу проблем, начиная от QuickEdit и заканчивая AjaxSearch. Ниже я покажу как разом решить все будущие проблемы с кодировками. Решение основывается на моем опыте, может быть неидеальным, подходит сайтам которые уже работают, но не используют utf8.
Исходное положение дел.
Есть сайт, в админке и на фронтэнде все показывается нормально, нет "кракозябр", но база в кодировке latin1 или cp1251. Такое может быть когда база по умолчанию у хостера создается с кодировкой отличной от utf8.
Переводим базу в UTF8.
ДЕЛАЕМ РЕЗЕВНУЮ КОПИЮ БАЗЫ ДАННЫХ И ФАЙЛОВ НА ХОСТИНГЕ. Если что, я вас предупредил.

Если сайт показывается нормально, это значит, что сопоставление кодировок и метод сопоставления кодировок из файла manager/include/config.inc.php работает верно. Теперь нам надо получить бекап базы в кодировке UTF8. сделать это нам поможет штатная утилита modx. Доступ к утилите "Инструменты" -> "Резервное копирование". Прежде чем делать резерное копирование, надо немного поправить файл manager/actions/bkmanager.static.php (по крайней мере для 1.0 точно). Перед изменеием вам надо открыть файл manager/includes/config.inc.php и запомнить (записать) значение следующих параметров:
...
$database_connection_charset = 'latin1';
$database_connection_method = 'SET CHARACTER SET';
...
Итак в указаном примере кодировка
latin1 и метод
SET CHARACTER SET. Значит в файле manager/actions/bkmanager.static.php вам надо изменить строчку 59:
...
$dumper = new Mysqldumper($database_server, $database_user, $database_password, $dbname);
...
на
...
$dumper = new Mysqldumper($database_server, $database_user, $database_password, $dbname, 'latin1', 'SET CHARACTER SET');
...
все, сохранаяем идем в админку "Инструменты" -> "Резервное копирование" помечаем все таблицы,
отмечаем "Включать в дамп инструкцию ’DROP TABLE’", нажимаем сохранить. Полученный файл открываем текстовым редактором, который может менять кодировки файлов. В файле заменяем все упоминания latin1 на utf8, сохраняем файл в кодировке utf8. Не забудьте удостовериться что русские символы в файле отображаются правильно (посмотрите на вторую строчку файла, там название сайта, как оно указано в конфигураторе).
Дальше вам потребуется доступ к вашей базе данных через phpMyAdmin (большинство хостеров предоставляют такой доступ). Выбираем нужную базу данных и на странице списка таблиц в базе, нажимаем последнюю вкладку "Операции", там в самом низу видим поле сравнение, выбираем utf8_general_ci, сохраняем изменения.
Если такой вкладки и поля "сравнение" найти не удалось, можете выполнить просто sql запрос:
alter database имя_вашей_базы_данных charset=utf8;
После успешной смены кодировки, останется загрузить наш sql-дамп. Нажимаем "Импорт" указываем наш подготовленный файл, нажимаем Ok. Если все прошло нормально, идем дальше.
Открываем файл manager/includes/config.inc.php и меняем
...
$database_connection_charset = 'latin1';
$database_connection_method = 'SET CHARACTER SET';
...
на
...
$database_connection_charset = 'utf8';
$database_connection_method = 'SET NAMES';
...
сохраняем. идем в админку сайта, там "Инструменты" -> "Конфигурация", на вкладке "Сайт" меняем "язык системы управления" на Russian-UTF8 и "кодировка" на Unicode (UTF-8) - utf-8. Сохраняем. Проверяем сайт и админку на правильность отображения русских буковок.
На все у вас уйдет не больше часа, если кто не уверен в своих силах или карме, может обратиться ко мне лично, я помогу за символическую компенсацию моего времени.
ВСЕ НА UTF-8!!