Unfortunatley, TagLib makes some encodings inside. I've testen over 100 mp3 files. And I'm real confused: why some of them I can update with CYR texts inside of TAGs, but the same time some of them have "?????". The same code!
I've combined Tags and Properties - nothing differed. But! Some files have 2 Tags "collections": ID3v2, ID3v2 and ID3v1. In this case I can change Tags with CYR chars. What that means "ID3v2, ID3v2" I've didn't undrestood. Why 2 same - no answer.
I have a look some codes of TagLib# and fond there "this.encoding = ...". After that I've stoped analyze "why" and "where".
Vlad L, just use Translit for those files. I thing TagLib# detect charset and gives you no chance to change it (1251 != 1252 etc.)