Hi,<div>Thanks for the reply :D. The string is definitely getting mangled. I&#39;m missing something. I tried creating a TagLib::wstring with my path string like so:</div><div><br></div><div>TagLib::wstring myFileNameWString ( (wchar_t*) path, TagLib::String::UTF16 );</div>
<div><br></div><div>and got gibberish.</div><div><br></div><div>I finally noticed that the TagLib::String class stores everything as UTF16BE. My PRUnichar* is really a wchar_t*, which is UTF16 (I think :) ). </div><div><br>
</div><div>I&#39;m still a little confused on how the TagLib::String class works. In the constructor:</div><div><br></div><div>TagLib::String::String<span class="Apple-tab-span" style="white-space:pre">        </span>(const wchar_t * s, Type t = UTF16BE)</div>
<div><br></div><div>What is the second parameter for? At first I thought it was the encoding for the first parameter, but reading the docs that isn&#39;t so...</div><div><br></div><div>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?</div>
<div><br></div><div>Thanks again! </div><div><br><div class="gmail_quote">On Sun, Feb 6, 2011 at 12:58 PM, Jim <span dir="ltr">&lt;<a href="mailto:jmartin92@comcast.net" target="_blank">jmartin92@comcast.net</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On 2/6/2011 2:31 PM, Jeremy Gregorio wrote:<br>
&gt; Hi again :). So I can now tag MP3s from my plugin, youtubemp3podcaster<br>
&gt; (<a href="https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/</a>). But I&#39;m<br>
&gt; struggling with Unicode. I wrote a function to handle the tagging, the prototype<br>
&gt; is like so:<br>
&gt;<br>
</div><div>&gt; But that crashes too. At any rate, now that I look at the class definition for<br>
&gt; FileRef I don&#39;t know why doing<br>
&gt;<br>
&gt; TagLib::FileRef f (path);<br>
&gt;<br>
&gt; Works if I&#39;m just using char*, because I don&#39;t see a constructor that takes a char*.<br>
&gt;<br>
<br>
</div>At first glance, I can&#39;t tell you why using a TagLib String would cause a crash.<br>
  Have you tried looking at the string after conversion?<br>
<br>
However, I can tell you why using a char* works.<br>
<br>
Here&#39;s the constructor:<br>
<br>
FileRef (FileName fileName, bool readAudioProperties=true,<br>
AudioProperties::ReadStyle audioPropertiesStyle=AudioProperties::Average)<br>
<br>
FileName is a const char*.  So that&#39;s the constructor you are calling with the<br>
default values.<br>
<font color="#888888"><br>
Jim<br>
_______________________________________________<br>
taglib-devel mailing list<br>
<a href="mailto:taglib-devel@kde.org" target="_blank">taglib-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/taglib-devel" target="_blank">https://mail.kde.org/mailman/listinfo/taglib-devel</a><br>
</font></blockquote></div><br></div>