Онлайн-руководство разработчика NetCat
Новогодние скидки до 25%!
Подробнее
Модуль «Поиск по сайту» 12.2.1Начало работы с модулем 12.2.2Язык запросов 12.2.3Способы хранения индекса 12.2.4Интерфейс модуля в панели управления сайтом 12.2.5Области индексирования 12.2.6Области HTML-страниц 12.2.7Области поиска на сайте 12.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 12.2.9Правила индексирования 12.2.10Постановка задачи переиндексирования в очередь 12.2.11Интеграция модуля в макеты дизайна сайта 12.2.12Простая форма поиска 12.2.13Расширенная форма поиска 12.2.14Вывод результатов поиска 12.2.15Стилизация списка подсказок 12.2.16Расширенные настройки 12.2.17Разработка расширений модуля 12.2.18Обзор архитектуры модуля 12.2.19Обработчики документов различных типов 12.2.20Текстовые фильтры 12.2.21Анализаторы текста 12.2.22Корректировщики запросов 12.2.23Подключение других поисковых систем 12.2.24Решение проблем с поиском 12.2.25Решение проблем с индексированием 12.2.26Справочник API

Перевод сайта с cp1251 на utf-8

Прежние версии системы создавались на устаревшей кодировке cp1251. В настоящее время некоторые сайты, уже обновлённые до последних версий, могут также оставаться в данной кодировке. В том случае, если вы решили перевести ваш сайт в кодировку utf-8 вам может пригодиться данная инструкция.

Кодировка задается в панели хостинга для всего сайта, вызвав phpinfo() нужно проверить, чтобы было:

  • default_charset utf-8  в блоке "PHP Core"
  • Content-Type text/html; charset=utf-8 в блоке "HTTP Headers Information" (если есть), и другие упоминания кодировки.

Необходимо внести правки в файлы настроек системы(находятся в корневой папке системы):

В файле 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 и выше).

Описание проекта