Re: Handling ID3 tags with non-latin1 encoding
Kurt Roeckx <[email protected]> Wed, 7 Jun 2006 01:46:12 +0200
| Newsgroups | gmane.comp.audio.mad.devel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Jun 05, 2006 at 09:06:00AM +0000, Stefan Huelswitt wrote: > Hi, > > I have a question regarding handling of ID3 tags which are > non-latin1 encoded e.g. iso-8859-5. > > I think I can get ucs4 strings from libid3tag and convert them > with iconv to whatever codeset originaly was used. What you really should do is convert things to wchar_t, and then use functions that work with them (like wprintf()) to output things. This should be much more portable. I find it unfortute libid3tag does everything with ucs4 instead of wchar_t's. Anyway, one problem you should probably be aware of is that id3_ucs4_t is a long, which is typicaly 64 bit on a 64 bit machine, and so is not 4 bytes as you might expect. I'm not sure what's the best way to convert it from ucs4 to wchar_t though, and can't think of a portable way, and I'd love if someone could point me out how to do it. (On Linux (glibc), casting it from a id3_ucs4_t to a wchar_t seems to work, but it's not portable.) Kurt