Знаки вопроса вместо русских слов

10.0/10 оценка (1 голосов)

Одна из самых частых проблем при работе или установке сайта является кодировка или проблема с русскими символами. Внешне это выглядит как масса восклицательных знаков либо перепутанные и неизвестные символы (в быту иногда называют «кракозябрами») вместо привычного русского текста. Основная причина — это неправильно настроенная кодировка на веб-сервере или в базе данных.

Как вы уже знаете, Joomla и любые ее расширения работают только в UTF-8, без исключения. Это кодировка является де-факто стандартом практически всех CMS в мире.

Чтобы устранить эту проблему мы предлагаем вам несколько готовых решений.

Внимание! Решения ниже не эквивалентны друг другу и не взаимозаменяемы. Поэтому, перед тем как приступить, вам нужно понять причину проблемы. Если вы не знаете, то можете попробовать все способы.

Настройки Apache, Nginx

Зачастую хостинг настроен по умолчанию на кодировку Windows-1251. Это частая проблема дешевых или некачественных серверов. В этом случае вы можете установить кодировку явно через «.htaccess» (точка в начале имени обязательна!). Просто добавьте следующие две строки в этот файл:

php_value default_charset    utf-8
AddDefaultCharset            utf-8

Примечание. Иногда хостер запрещает его редактирование. Если это так после сохранения вы увидите белый экран или 500-ю ошибку. Тогда вам нужно обратиться в техподдержку хостинга с просьбой переключить ваш сайт на UTF-8.

Файл импорта

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

Импортируемые файлы должны быть только в UTF-8. В этом случае вам нужно разобраться с программным обеспечением, которое формирует CSV файл.

Базы данных

Бывают случаи, когда при установке сайта база данных указывает свою кодировку, либо меняет ее на значение по умолчанию (например, latin1_swedish_ci). Причем кодировка может задаваться не только для всей базы данных, но и для конкретных полей в таблицах. Вам необходимо поменять кодировку в таблицах на utf_general_ci следующим образом.

Примечание. Если вы не уверены в своих действиях, обязательно сделайте полный бекап вашего сайта.

Откройте базу данных сайта в PHPMyAdmin (либо другим инструментом) и найдите таблицы с неправильной кодировкой.

Найдите latin1-swedish-ci в таблице

Откройте эту таблицу и нажмите Операции

Страница Операции

Поменяйте кодировку на utf_general_ci

Изменение кодировки

Далее исправьте кодировку полей в этой таблице. Для этого кликните на надпись Структура

Страница Структура

Найдите поля с неправильной кодировкой и нажмите Изменить

Изменение структуры

Поменяйте на кодировку utf_general_ci и сохраните.

Сохраните все изменения

Эту процедуру необходимо повторить для каждой таблицы с неправильной кодировкой.

Примечание. Иногда после этого вам необходимо заново наполнить сайт контентом, т.к. после конвертации текст может быть частично или полностью утерян.

У меня остались вопросы, где я могу их задать?

Вы можете обратиться на наш специальный форум техподдержки JBZoo. Если у вас нет активного аккаунта со знаком «плюс» в тарифном плане, то вы можете задать свой вопрос в одном из этих разделов или на любой из наших контактов. Форум специально предназначен для JBZoo, приоритет и скорость ответа там выше.