Видя бардак с кодировками ID3-тэгов и помня, что, по стандарту,
там не может быть ни UTF-8, ни КОИ-8, нашёл радикальный, но вполне корректный путь: перегнать коллекцию из mp3 в ogg vorbis, где с тэгами нет такого бардака, ибо они всегда в UTF-8. Да и сжатие там получше. Да и формат этот открытый...
Поискал конвертер в портах при помощи
make search и, не заметив его в толпе софта, стал писать свой: традиционно, на перле.
Метод — ленивый до безобразия: взять файл, прочитать свойства и тэги (
MP3::Info), декодировать звук (
mpg123), послав его кодировщику (
oggenc), попутно передав тэги, переведённые из windows-1251. Итого — 99 строк, 2 кБ (вместе с развесистыми комментариями). Работает. И называется, чтоб долго не думать,
mp32ogg.
А потом выясняется, что в портах уже есть mp32ogg. И делает он то же самое. И тем же самым путём.
Не знаю, может ли он кодировку тэгов менять (ещё не проверял), но это, в общем-то, и не важно, ибо в портах нашёлся
mp3unicode.
ЗЫ Но вот железные MP3-плееры да музцентры с магнитолами нечасто ogg понимают...