Помогите разобраться с кодировкой на сайте

Здравствуйте уважаемые.

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

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

Сайт на джумла 1.7
модуль называется «mega mini news»
адрес сайта: http://besage.net/

пс: баги можно увидеть в ротации и в самом низу сайта
  • Вопрос задан
  • 2583 просмотра
Решения вопроса 1
ainu
@ainu
О, знаменитая же штука, которую обещали поправить в PHP6 (сделав это главной фичей), но не справились.
Решение: пройдитесь по коду, и замените substr на mb_substr, strlen на mb_strlen. Возможно, другие mb_ — аналоги, которые найдёте по ходу дела.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
TheMengzor
@TheMengzor
Как же доставляют названия всех этих модулей — мега-мини-ньюз, супер-макси-комэнтс… :)
Ответ написан
silentnuke
@silentnuke
подозреваю что у вас кодировка utf-8. соответственно русские символы занимают больше одного байта. Далее ваша функция вывода, берет n-количество байтов текста, и в некоторых случаях, отрезается байт символа, отсюдова и появляется иероглиф.
Ответ написан
ilyaplot
@ilyaplot
PHP программист
Кодировку таблиц этого модуля посмотрите. Видимо, она отличается от кодировки остальных таблиц.
Ответ написан
letaon
@letaon Автор вопроса
я если честно не особо разбираюсь во всех этих тонкостях, а что такое mb_substr, strlen и т.д.? Искать эти «команды» нужно по всем файлам модуля или только в php файлах?
Ответ написан
namespace
@namespace
Разработчик C++/Python
Скорее всего дело в скрипте который вырезает этот кусочек статьи или в скрипте который его выводит. Но я не уверен.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
DKLINE Санкт-Петербург
от 120 000 до 150 000 ₽
Laptop.ru Москва
от 130 000 до 170 000 ₽
от 60 000 до 80 000 ₽