Некорректное отображение кириллицы в именах файлов (созданных под Windows)

Rarog
Флешка монтировалась sudo mount /dev/sdb1 /mnt

Надо
sudo mount -o utf8,rw,users /dev/sdb1 /mnt
У вас флешка монтируется с iocharset=iso8859-1 , и в результате все имена перекодируются в эту самую кодировку, то бишь latin1. А надо в utf8. Отсюда и все проблемы.
FAT32 надо монтировать с опцией utf8
Всем спасибо, проблема решена.
Вопрос - а если бы у него было выставлено значение LC_COLLATE = C, то проблемы бы были или бы не было?
Ведь эта переменная задает порядок сортировки символов, в операциях подстановки имен файлов и в поиске по шаблону (определяет правила сравнения и преобразования строк).
И я почему то считал, что правильно указывать LC_COLLATE = C
Или я не прав? Проясните мне на будущее.
Ошибки не исчезают с опытом - они просто умнеют
vasek
Вопрос - а если бы у него было выставлено значение LC_COLLATE = C, то проблемы бы были или бы не было?
Было бы то же самое.
1) кодировка по-умолчанию выбирается при конфигурации ядра (или модулей поддержки FAT) ПЕРЕД СБОРКОЙ. В официальных сборках ядра там стоит именно эта самая latin1. Если не задать другую кодировку в параметрах монтирования, останется та, что по-умолчанию. Никакие переменные окружения, в том числе и локаль, на ядро НЕ РАСПРОСТРАНЯЮТСЯ. Ядро Linux – это фактически "система в системе", оно работает совсем не так, как юзерспейс.

2) Локаль "C", вообще-то, то же самое, что "нет локали". А без локали никакого юникода не будет, как бы она ни интерпретировалась. Будет всё тот же latin1.

3) LC_COLLATE задаёт не локаль ввода-вывода, а всего лишь локаль сортировки (сравнения строк) в программах, которые что-то сортируют.
кстати тоже интересует этот вопрос, потому как раньше этой проблемы не было

P.S. когда писал, еще не было поста выше.
И все-таки мне не понятно - почему же у меня никогда такого не было (при любой файловой системе). Правда у меня все монтируется автоматом в Nautilus.
Где то давно вычитал, что если сразу установить LC_COLLATE = C, и в дальнейшем не менять, то все будет определяться правильно.
Ошибки не исчезают с опытом - они просто умнеют
Этой проблемы не было, потому что монтировала программа, которая сама подставляла нужные опции при монтировании. А когда смонтировали вручную, никаких опций не указали – и вот вам результат.

LC_COLLATE не используется для преобразования строк, только для сравнения. Грубо говоря, она определяет, по какому "алфавиту" будет происходить сортировка.
Natrio
Этой проблемы не было, потому что монтировала программа, которая сама подставляла нужные опции при монтировании. А когда смонтировали вручную, никаких опций не указали – и вот вам результат.
Все ясно. Бум знать. И, как вывод, лучше использовать умные программы, а уж если задумал ручками - то сначала изучить.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.