Проблемы с кодировкой в компоненте zoo 3.0.11 при создании категории или элемента вместо заголовка появляются знаки вопроса (?) как можно исправить эту проблему? стоит Joomla 3.0
Столкнулся с аналогичной проблемой и вечером, под бутылочку холодного пива я засел изучать, где же собака порылась опять у этих англоязычных (и не только) разработчиках yootheme =) Я создал 2 приложения - Новости (на основе Blog) и Статичные страницы (на основе Pages). В результате ZOO мне выдало вместо русских слов в названии одни вопросительные знаки, тьфу...
Первое, что я попробовал - посмотреть что именно записалось в базу данных. И это был верный шаг
В базе оказались все те же вопросительные знаки вместо русского текста. Хмм - подумал я, и в phpMyAdmin решил их переименовать и посмотреть, будет ли ZOO выдавать правильный результат. Если Zoo выдаст названия на русском, значит проблема может быть либо в коде, отвечающем за запись в базу, либо в самой базе данных - неверная кодировка таблицы. Переименовать мне не удалось - phpMyAdmin мне выдал предупреждение, о том, что он не в силах ввести неизвестные символы в кодировке таблицы. АГА - возликовал я! Открываю страничку со структурой базы в phpMyAdmin и начинаю плакать... плакать как маленький мальчик у которого отобрали конфетку... это .... хммм... умники из Yootheme создают свои таблицы для zoo в кодировке latin1_swedish_ci - Шведский бл@! хахахаха - тут уже я начинаю смеяться, утирая слезы
При этом, если поставить zoo на Joomla 2.5 то кодировка будет utf8_general_ci. Вот так yootheme не любит Joomla 3
А может и наоборот?! Соответственно искать проблемы в коде смысла уже нет - для начала исправим этот ужас, что криворукие натворили в базе.
Продолжаем разговор
Заходим в phpMyAdmin и открываем окно с SQL запросом. Вводим следующий запрос:
SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as sqlcode
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'ИМЯ_БАЗЫ_ДАННЫХ'
ORDER BY 1
где ИМЯ_БАЗЫ_ДАННЫХ мы заменяем на название базы, у меня на локальном сервере это zootest. Жем ОК и получаем много много строк:
ALTER TABLE `zootest`.`xxxxx_assets` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `zootest`.`xxxxx_associations` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `zootest`.`xxxxx_banners` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `zootest`.`xxxxx_banner_clients` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
я для примера привел только 4, у меня их выдало штук 20-25. Копируем все эти строки (если строчки выглядят коротко, обрезанно и не так как у меня - над этим списком есть ссылка "+ Параметры" - жмем на него и ставим настройку "Полные тексты" и ОК - строки не будут обрезаться). Скопировали все эти строки, открываем вновь окно SQL запросов и в чистое пустое поле вставляем всё, что скопировали. Жмем ОК. Переходим в нашу базу zootest, в таблицу таблицу xxxxx_zoo_application и пробуем переименовать вопросительные знаки в русский текст - УРА!
Все переименовалось! Проверяем в админке Joomla - и там тоже все написано на русском... но, что если создать новое приложение? Пробуем - создаем новый Blog и назовем его "База моих любимых проно-сайтов"
Все корректно создалось и все на русском!