Прежние версии системы создавались на устаревшей кодировке cp1251. В настоящее время некоторые сайты, уже обновлённые до последних версий, могут также оставаться в данной кодировке. В том случае, если вы решили перевести ваш сайт в кодировку utf-8 вам может пригодиться данная инструкция.
Кодировка задается в панели хостинга для всего сайта, вызвав phpinfo() нужно проверить, чтобы было:
Необходимо внести правки в файлы настроек системы(находятся в корневой папке системы):
В файле vars.inc.php нужно поменять значения настроек или добавить настройки если их нет!
// установка переменных окружения @ini_set("mbstring.internal_encoding", "UTF-8"); @ini_set("default_charset", "UTF-8"); // параметры доступа к базе данных $MYSQL_CHARSET = "utf8"; // кодировка $NC_UNICODE = 1; $NC_CHARSET = "utf-8";
В файле .htaccess поменять значение:
AddDefaultCharset utf-8
Эти системные файлы необходимо тоже сохранить в кодировке utf-8(есть два варианта такой кодировки, "без BOM" и "с BOM", нужна кодировка без BOM, так как другая приведет к ошибкам), это можно сделать например в редакторе Notepad++.
Должен быть конвертирован контент базы данных, для этого в phpMyAdmin выполните SQL запрос(подставив имя своей БД):
SELECT CONCAT( 'ALTER TABLE `', t.`TABLE_SCHEMA` , '`.`', t.`TABLE_NAME` , '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) AS sqlcode FROM `information_schema`.`TABLES` t WHERE t . `TABLE_COLLATION` = 'cp1251_general_ci' AND t.`TABLE_SCHEMA` = 'ИМЯ_БД' ORDER BY 1 LIMIT 0 , 999
в результате вы получите список строк вида:
ALTER TABLE `ИМЯ_БД`.`Auth_ExternalAuth` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
скопируйте все эти строки и выполните как SQL запрос.
Если база большая, то лучше выполнять операцию по частям.
Убедитесь, что сама база данных тоже работает в кодировке utf8_general_ci.
Также, возможно, понадобится перекодировать файлы макетов и компонентов в папке /netcat_template/ в соответствующую кодировку(для версий 5 и выше).