Just for fun ...
Officially this even can't be solved. The phenomenon "album- / tracktitles" is coming from the whole world to you, while you will use one "code page" (to type your own text etc.) hence the all over the world "typed" tracktitels can only be interpreted by their respective code pages. Unsolveable for practical reasons.
The stupidity here is that writing such "text" as a filename to disk *is* solved by the Windows OS. I'm not even sure how (and why exactly), but this will be related to the phenomenon "system string". All things go wrong when you write the same filename as data in memory or a textfile, which then has to be done in Unicode (allowing for just all characters from all over the world) but which needs interpretation "for which codepage" at reading back. The most stupid of it all is, that I don't really care what that russian trackname really means, but when the characters change on the way, the filename can't be found anymore (not in C++ and not without very ugly programming).
Ok, I solved it, but it could only be done with a big trick.