Добавляем русскоязычные id3 теги в мп3

Для работы с id3 тэгами есть замечательная библиотека getid3 . Примеры есть на фо. сайте, я же опишу проблему с которой пришлось столкнуться.

Как обычно бывает с иноязычными скриптами. проблема возникла с русскими символами. При записи в формате id3v1 получались либо кракозябры вместо русских символов либо они вообще не записывались. При этом в id3v2 кириллица сохранялась нормально.

Пример кода из документации.

После экспериментов выяснил, что кириллицу в id3v1 нужно записывать в кодировке cp1251. Красивого решения не придумал, пришлось править саму библиотеку. Ищем файл /getid3/write.php

Ищем строку из примера ниже и меняем ISO-8859-1 на cp1251.

 

You may also like...

  • Sanka123

    Не работает ваш пример ни фига

    • работает, на трех проектах. Собственно я пример из доков, практически без изменений использую.

      • Sanka123

        Тогда почему я Ваш пример использую, а у меня в плеере все равно кракозябрики?
        И как тогда доверять информации из Википедии по тому что тег id3v1 поддерживает только кодировку ISO-8859-1?

        • Я вычислял проблему опытным путем.

          Дык, а что с кодировкой в итоге?
          По умолчанию если не трогать библиотеку скрипт конвертит в ISO-8859-1. У меня в этом случае кракозябры. Проверял на Винампе.
          После правки скрипт конвертит в CP1251 и кракозябр нет.

          Вариант 1. Неверная кодировка у входных данных
          Вариант 2. В конфиге неверная кодировка
          Вариант 3. Баг библиотеки, тот что я описал.

          Проверяйте, у вас что то из этих 3 вариантов.

  • Sanka123

    Тогда почему я Ваш пример использую, а у меня в плеере все равно кракозябрики?
    И как тогда доверять информации из Википедии по тому что тег id3v1 поддерживает только кодировку ISO-8859-1?