Joomla кодировка и крокозябры на сайте

Бывает так, что работаешь над сайтом, а потом выскакивает прыщик в виде неправильной кодировки на сайте под управлением Joomla.проблемы с кодировкой Joomla

Недавно столкнулся с проблемой в некоторых модулях Joomla в последних символах отображается неправильная кодировка в виде символа - ? (знак вопроса в отображении сайта Joomla)

Долго шерстил форумы и пытался правильно сформулировать поисковый запрос, но четыре дня все было тщетно.
Решение проблемы со знаком вопроса на Joomla

Но одном из форумов http://joomlaforum.ru пытался найти ответ на свой вопрос, умнее люди мне подсказали, что нужно искать substr и заменить его на mb_substr. Но найти этой команды в модулях Joomla mod_latestnews и mod_mostread мне не удалось.

На пару дней закрутился в других делах и забыл о проблеме. Но, потом решил все-таки исправить этот бок. И зашел на форум http://joomla-support.ru, там человек решил свою проблему, но она не была детально описана, я подумал, посмотрел на код Joomla и понял, что нужно искать проблему в папке с шаблоном Joomla.


В папке с шаблоном Joomla лежали папки с отображаемыми модулями, а в них файлы default.php. Так именно в них я и заменил команду substr на другую mb_substr.

Для поиска слова в тексте я пользовался программой TotalCommander, скриншот ниже (Инструменты-Поиск файлов..). Очень удобная программа, но как FTP клиент по многим причинам меня не устраивает, использую FileZilla.

totalcommander

Процитирую здесь некоторые комментарии пользователей с форума для расширения кругозора и для ясности:

ycsus

    Скорей всего для обрезки текста в модуле используют substr(), а для кириллицы такое никак не катит, нужно заменить subtr() на mb_substr(), только не забудьте, что там на один параметр больше нужно передать.

     

    Дело в том что, по сути, кириллица в утф8 состоит из 2х символов. Вышеприведенная функция обрезает по кол-ву символов. Иногда попадает как раз между одной буквой, что хреново воспринимается браузером. Прописать это нужно в модуле, найти где используется substr() и прописать вместо неё mb_substr(), посмотреть как правильно её вызывать можно на пхп.су

 

midav

    substr не корректно работает с многобайтными кодировками. Поэтому с utf-8 лучше применять mb_substr

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

 

Всем ребятам на форуме огромное спасибо, я решил написать эту статью для того, чтобы помочь другим начинающим пользователям Joomla! Которые столкнулись с проблемой кодировки в Joomal, знаками вопроса, и другими проблемами с кодировкой в шаблонах Joomla.

Создание сайта на Joomla

Теперь во всех модулях, на данный момент, у меня стоит правильная кодировка.

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.