[закрыто] libid3 и теги в CP1251 (libid3, C++ и libiconv)

Модератор: Модераторы разделов

Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

[закрыто] libid3 и теги в CP1251

Сообщение Mage-Warrior »

Приветствую, уважаемые!
Никак не справлюсь с задачей по получению тегов V1 из mp3. То есть практически справился при помощи libid3, но случилась одна неувязочка с тегами в CP1251. Дело в том, что в коде фигурирует:

Код: Выделить всё

#include <id3.h>
 ...
 ID3* ID3_struc=create_ID3(NULL);
 parse_file_ID3(ID3_struc, mp3_filename);
 ...
 strcat(new_filename,ID3_struc->artist);
 strcat(new_filename,ID3_struc->title);
 ...
 destroy_ID3(ID3_struc);

Проблема в том, что вместо русскоязычного тега в виде кучи крякозябр "ID3_struc->artist" и "ID3_struc->title" возвращают пробельные символы в количестве равном количеству букв в теге. iconv не помогает - перекодирует удачно из CP1251 в UTF-8, но из пробелов так и получаются пробелы.
mp3-файл пробовал - содержит корректные теги в CP1251.
Что посоветуете? Взять другую библиотеку, вместо libid3? Какую? Или что-то еще попробовать?
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: [закрыто] libid3 и теги в CP1251

Сообщение Mage-Warrior »

Поискал причину в исходных кодах libid3. Оказалось, что все символы, которые !isprit (не печатаемые), искусственно заменяются на пробелы. Почему-то автор библиотеки не обратил внимания на locale-версию этой функции, что привело к "зачистке" всех неанглийских символов. Править код библиотеки нет желания. Лучше, возьму другую... Если кто сюда заглянет - посоветуйте.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: [закрыто] libid3 и теги в CP1251

Сообщение Aectann »

Может быть TagLib?
My god... it's full of stars!...
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: [закрыто] libid3 и теги в CP1251

Сообщение Mage-Warrior »

Aectann писал(а):
18.01.2009 15:34
Может быть TagLib?

Оооо! И не только mp3! Огромный санькс!! :clap2: А то я искал по "ID3 tag" зачем-то.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали: