Бывает так, что работаешь над сайтом, а потом выскакивает прыщик в виде неправильной кодировки на сайте под управлением 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.
Процитирую здесь некоторые комментарии пользователей с форума для расширения кругозора и для ясности:
ycsus
Скорей всего для обрезки текста в модуле используют substr(), а для кириллицы такое никак не катит, нужно заменить subtr() на mb_substr(), только не забудьте, что там на один параметр больше нужно передать.
Дело в том что, по сути, кириллица в утф8 состоит из 2х символов. Вышеприведенная функция обрезает по кол-ву символов. Иногда попадает как раз между одной буквой, что хреново воспринимается браузером. Прописать это нужно в модуле, найти где используется substr() и прописать вместо неё mb_substr(), посмотреть как правильно её вызывать можно на пхп.су
midav
substr не корректно работает с многобайтными кодировками. Поэтому с utf-8 лучше применять mb_substr
Наверное, проблема с кодировкой возникает у тех, кто заимствует шаблоны для Joomla на англоязычных сайта или других буржуйских, где нет такой проблемы.
Всем ребятам на форуме огромное спасибо, я решил написать эту статью для того, чтобы помочь другим начинающим пользователям Joomla! Которые столкнулись с проблемой кодировки в Joomal, знаками вопроса, и другими проблемами с кодировкой в шаблонах Joomla.
Создание сайта на Joomla
Теперь во всех модулях, на данный момент, у меня стоит правильная кодировка.