Данный патч позволяет mpg321 0.2.1 выводить ID3 теги созданные под Windows машиной(например в WinAMP) в консоли с локалью KOI8-R. Вообще можно было бы немного усовершенствовать и брать локаль из LC_ALL или чего-то подобного, но не всегда и не у всех она есть. Вообщем у меня работает почти всегда. Надо бы еще доработать определение UNICODE тегов- что бы не переводила... 43a44,45#include <iconv.h> 177a180,212#ifndef NO_ICONV iconv_t cd; char fs[128]; char *pfs; char ts[128]; char *pts; size_t lfs, lts; cd = iconv_open("KOI8-R", "CP1251"); if ((int)cd != -1) { for(i=0; i < 4; i++) { lfs = strlen(names[i]); lts = sizeof(ts); memset(fs, 0, sizeof(fs)); strcpy(fs, names[i]); pfs = fs; memset(ts, 0, sizeof(ts)); pts = ts; #ifdef _DEBUG // printf("from %s as %d\n", fs, lfs); // printf("to %s as %d\n---\n", ts, lts); #endif if (lfs > 0) { iconv(cd, &pfs, &lfs, &pts, <s); printf("converted: %s\n", ts); }
strcpy(names[i], ts); } iconv_close(cd); } #endif >
Источник: http://www.opennet.ru/base/patch/mpg321_rus_tag.txt.html