Newbie C question #2, TagLib, Firefox & Unicode

Jeremy Gregorio jeremy.firefox.addon at gmail.com
Mon Feb 7 03:09:00 CET 2011


I manged to get it working with regular strings by building TagLib & my app
with -Zc:wchar_t- :D. I'm still having trouble getting unicode stuff to
work, but I'm going to play with it more. Thanks for your email, it put me
on the right track.

On Sun, Feb 6, 2011 at 4:45 PM, Jeremy Gregorio <
jeremy.firefox.addon at gmail.com> wrote:

> Hi,
> Thanks for the reply :D. The string is definitely getting mangled. I'm
> missing something. I tried creating a TagLib::wstring with my path string
> like so:
>
> TagLib::wstring myFileNameWString ( (wchar_t*) path, TagLib::String::UTF16
> );
>
> and got gibberish.
>
> I finally noticed that the TagLib::String class stores everything as
> UTF16BE. My PRUnichar* is really a wchar_t*, which is UTF16 (I think :) ).
>
> I'm still a little confused on how the TagLib::String class works. In the
> constructor:
>
> TagLib::String::String (const wchar_t * s, Type t = UTF16BE)
>
> What is the second parameter for? At first I thought it was the encoding
> for the first parameter, but reading the docs that isn't so...
>
> If I understand right, I need to convert my strings from UTF16 encoded
> wchar_t to UTF16BE before I try to use them with the TagLib::String
> constructor. Is that right? If it is, is there an easy way to do that, or do
> I have to dig into the specs for the two encodings?
>
> Thanks again!
>
> On Sun, Feb 6, 2011 at 12:58 PM, Jim <jmartin92 at comcast.net> wrote:
>
>> On 2/6/2011 2:31 PM, Jeremy Gregorio wrote:
>> > Hi again :). So I can now tag MP3s from my plugin, youtubemp3podcaster
>> > (https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/).
>> But I'm
>> > struggling with Unicode. I wrote a function to handle the tagging, the
>> prototype
>> > is like so:
>> >
>> > But that crashes too. At any rate, now that I look at the class
>> definition for
>> > FileRef I don't know why doing
>> >
>> > TagLib::FileRef f (path);
>> >
>> > Works if I'm just using char*, because I don't see a constructor that
>> takes a char*.
>> >
>>
>> At first glance, I can't tell you why using a TagLib String would cause a
>> crash.
>>  Have you tried looking at the string after conversion?
>>
>> However, I can tell you why using a char* works.
>>
>> Here's the constructor:
>>
>> FileRef (FileName fileName, bool readAudioProperties=true,
>> AudioProperties::ReadStyle audioPropertiesStyle=AudioProperties::Average)
>>
>> FileName is a const char*.  So that's the constructor you are calling with
>> the
>> default values.
>>
>> Jim
>> _______________________________________________
>> taglib-devel mailing list
>> taglib-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/taglib-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/taglib-devel/attachments/20110206/42c44338/attachment.htm 


More information about the taglib-devel mailing list