Публикации

Пользователь:

Пароль:


Запомнить

Регистрация
Забыли пароль?



Пользователей: 3871
Новичок: 3aTeuHuk
Поддержи проект
Поддержите проект Webmoney
R197422573540
E197270426287
Z701768662172
Сказали «Спасибо»

Проблемы с кодировкой


Автор: е107 Клуб
 10.0 - 4 голосов -

Существует четыре этапа в проблеме с кодировкой, которые нужно понимать:

1. Кодировка в которой находятся языковые файлы сайта
2. Кодировка в которой находится база данных
3. Установки обработчика PHP
4. Указание браузеру какая кодировка используется на сайте.


Все четыре пункта должны быть или указывать на одну кодировку. Начнём с первого пункта

1. Если языковые файлы не соответсвуют нужной кодировке, вы можете их перекодировать с помощью программы Notepad++. Перекодировать надо всю папку e107_languages, файлы в папке e107_themes (тему которая используется на сайте) и файлы в папках e107_plugins которые вы используете.

2. Кодировка в базе данных обычно прописана по умолчанию у вашего хостера. Она может и не соответсвовать той кодировке что вам нужна, но к счастью в базах данных существует такая вещь как "сопоставление" (collation), вот его то нам и надо будет выставить в нужную кодировку.

3. Установки обработчика PHP могут оказаться нерешимой проблемой, если хостер установил по умолчанию какую либо из кодировок, но обычно никаких кодировок по умолчанию не устанавливается, поэтому PHP обрабатывает в той кодировке, в которой хранятся данные в базе данных.

4. Указать кодировку для браузера нужно в двух местах (если вы решили указать utf-8)

а. В файле Russian.php в папке e107_languages\Russian нужно прописать в строку define("CHARSET", "utf-8");

б. В файле /e107_handlers/ admin_log_class.php нужно прописать после строки
– Цитата: 
  1. $if (!defined('e107_INIT')) { exit; }

следующие:
– Цитата: 
  1. mysql_query ("set character_set_client='utf-8'");
  2. mysql_query ("set character_set_results='utf-8'");
  3. mysql_query ("set collation_connection=' utf8_general_ci'");


После этого всё должно заработать.