ID3v1 tags use 1-byte encoding. While standard specifies it as ISO 8859-1, in the real world most of players in the v1 era used Windows system 1-byte ANSI encoding corresponding to current locale.
What's why qmmp can not display such tags correctly.
I asked taglib develpoers to fix this on their side by using system locale to select corresponding ANSI code page also providing patch implementing this logic:
https://github.com/taglib/taglib/issues/129#issuecomment-2408567868
But they believe this should be fixed on the app side by implementing a custom ID3v1::StringHandler class.
I am attaching a sample mp3 demonstrating the problem. This is free mp3 example from
https://file-examples.com/index.php/sample-audio-files/sample-mp3-download/
I used WinAmp 2.95 in Wine to add ID3v1 tag in Russian to this sample to demonstrate the problem without violating copyright laws.
Also attaching screenshot showing sample.mp3 in qmmp's playlist.
Correct playlist item would look like "Тестовый файл"
Also discussed here:
https://sourceforge.net/p/qmmp-dev/tickets/924/
Relevant Ubuntu issue:
https://bugs.launchpad.net/ubuntu/+source/qmmp/+bug/2084353
Screenshot showing sample.mp3 in qmmp's playlist.
Possible solution: https://sourceforge.net/p/qmmp-dev/tickets/1191/