Всем привет!
В универе дали задание — реализовать чтение файловых систем FAT. Все написал по спецификации, на флэшках проверял — все работает не хуже швейцарских часов. Но есть одна странность: когда проверяю на образах, полученных командой
mkdosfs -n "FAT image" -F 16
, то вся структура читается как надо, но имена файлов на русском читаются неправильно. В спецификации FAT указана кодировка UTF-16, я реализовал с ней чтение. На флэшках (разных) все работает. На образах — крякозябры. Образы прекрасно подключаются/отключаются и через стандартные линуксовые утилиты никаких проблем не чувствуется.
Дак как же надо читать имена в FAT?
P.S. Мой код на гитхабе:
github.com/georgeee/FAT-Master