[C++] Umlaute mit externer Lib

Hallo!
Ich habe ein Programm, welches Mittels Taglib MP3 Tags ausliest. Das funktioniert auch soweit ganz gut, nur das die Taglib Dateien, bei denen ein Umlaut im Dateinamen vorkommt, das Programm zum Absturz bringt.
Hier die Fehlermeldung:
Code:
TagLib: Could not open file ABCÄ.mp3
TagLib: FileRef::tag() - Called without a valid file.
Ich habe auch schon versucht, das Ä direkt mit dem ASCII-Wert zu belegen, a la:
Code:
std::string file = "ABCA.mp3";
file[3]=0xc4;
Aber es hilft nichts. Das Programm crasht immer an der Stelle:
Code:
TagLib::FileRef f(file.c_str());

Hat vlt. jemand eine Idee, wie ich den String formatieren muss, damit Taglib ihn akzeptiert?
 
Eventuell ein Problem mit Unicode? Laut Doku von TagLib erwartet der Konstruktor "TagLib::FileName" welches laut typedef "const char*" ist. char ist allerdings je nachdem ob unicode oder nonunicode wchar_t oder char_t. Eventuell passen die Projekteinstellungen nicht zu dem, was du mitgibst.
 
Die Projekteinstellungen standen auf ISO-Standart. Jetzt habe ich alles auf UTF-8 umgestellt und den Quellcode an den entsprechenden Stellen geändert - Die ISO Umlaute quasi in UTF-8 Umlaute geändert. Jetzt übernimmt die Taglib das einwandfrei. Besten Dank! :)
 
Zurück
Oben