Problem with Non English(Farsi, ...) subtitle
According to Trezoid answer on superuser the solution is:  

By default the language encoding on VLC (and possibly others) is set to "default" which is windows-1252 (possibly only if your language is set to english, but I'm not sure)

This will not display other languages very well. To fix it, open up VLC preferences, click on the Subtitles and OSD tab, and change "default encoding" to UTF-8

This will give the program a much wider choice of characters to display from allowing it to render the characters as they should be.