OK, so now we have your statement that the files have UTF-8 and UTF-16 encoding.
I wonder how you checked that.
One of the truths in data processing is: if all files have the same properties then they should behave in the same way.
So either you do have a different character encoding in the files - this would then explain the different appearance in the player - or they are messed up already because a previous program did not know how to handle the tags. But then they should appear just as bad in MP3tag.
You could also check if you have just ID3 tags (v1 and/or V2) or also APE tags in the files.
Get rid of the APE tags and see what you get.
First of all thanks for all replies, they lead me to solution.
I had the same problem for my Turkish songs as well for a long time.
Solution is to use ID3v2.4 UTF-8 tag for Turkish charactered song names.
Also I have checked in my Samsung phone everything works perfect.
I have fought the special character problems in my large collection and the solution for me was to export all my data to text and then use Notepad++ to load the file and scan it for non-ASCII characters. Then I could edit the data with MP3TAG to remove them. My data is all in English, but a while back I travelled to eastern Europe and added a number of albums. After cleaning the special characters I'm able to load and manipulate all my data, and to populate it into a SQL Server database in my native language. Maybe this will help some of you with this problem