Проблема с кодировкой при установке сниппета CSV2HTML


Modx проблема кодировки сниппет CSV2HTML

Решил cоставить небольшую заметку на возможную проблему при вызове сниппетов в MODx или других элементов.

Большое количество дополнений с официального сайта MODx разработаны для кодировки UTF-8. При работе этих дополнений с кириллическим текстом могут возникнуть проблемы с кракозябрами кодировкой. у меня данная проблема возникла при трансформации файла каталога в формате CSV в HTML код. Наименования на латинице выводились правильно, а вот отечественные слова в виде кракозябр.

Как решить проблему с кодировкой сниппета CSV2HTML в MODx?

Методом "научного тыка" с помощью браузера выяснил, что кракозябры выводятся в нормальном виде в кодировке Windows-1251. Стоит отметить, что просто сохранить файл из MS Excel в формате UTF-8 не получится.

Возможное решение

Некоторые реккомендуют открыть файл через стандартный Блокнот и пересохранить в кодировке UTF-8. Но каждый раз делать эту операцию при обновлении не хотелось. Поэтому решено было поправить немножко код сниппета.

Текущее решение проблемы кодировки со сниппетом CSV2HTML

Повторюсь, я рассматриваю решение на примере сниппета CSV2HTML (скачать сниппет CSV2HTML с официального сайта MODx), который преобразует файл (каталог товаров) их формата CSV в HTML код.

Нашел в коде функции, которые отвечают за хранение данных из CSV и перевел их при помощи PHP функции ICONV в кодировку UTF-8.

Строчка исходного кода:

$values[] = $value;

Что получилось:

$values[] = iconv('CP1251', 'UTF-8', $value);

В итоге все данные из CSV отображаются в формате HTML в кодировке UTF-8 при выводе на страницу MODx.

26.03.2013 Эту страницу просмотрели за все время 5592 раз(а)


Twitter


Облако тегов