This is a major breakthrough. And in the same time it is so simple! Right now I am feeling like an idiot and a genius at the same time...
I clearly remember reading
this article, and I also remember trying the solution before, but it haven't worked. Now I know why - the word iocharset starts with an "i" rather than "l". And due to a font used at the Ubuntu forum, these two could be easily confused.
So here are few things I found:
1) No more problems reading CDs with cyrillic filenames! Just add "iocharset=utf8" to your optical drive's line in /etc/fstab:
# CDROM, CDWRITER, DVD
/dev/cdrom /mnt/cdrom iso9660 defaults,noauto,ro,user 0 0
#/dev/cdwriter /mnt/cdwriter iso9660 defaults,noauto,rw,user 0 0
/dev/dvd /mnt/dvd auto defaults,noauto,ro,user,
iocharset=utf8 0 0
2) To convert filenames from one encoding to another I used
convmv. If the filenames are workable (when cd with non-English filenames is not mounted without using above method and then you copy files from it, filenames get messed up), convmv works fine. The only trick is that you need to know original filename encoding.
3) There is /usr/share/fonts/encodings/ directory with a whole bunch of encoding files in there. It seems like all cyrillic encodings are there(except for iso8859-5). Also Leafpad seems to read text files(when the encoding is specified) just fine.