Автор Тема: Некорректное наименование файлов после копирования из терминала - Runtu LITE 22.04.1 x64 - 20230106  (Прочитано 809 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vladiko

  • Активист
  • ****
  • Автор темы
  • Сообщений: 366
  • А мне летать охота...
Коллеги, если вставить флэшку (фат-32), то русские имена файлов/папок отображаются кракозябрами.
Как в этой сборке это исправить?
Использую исключительно Runtu LITE, различные версии

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3466
русские имена файлов/папок отображаются кракозябрами.
В какой программе созданы эти файлы? В какой кодировке они сохранены? Приложите скриншот отображения и заархивированный пример таких файлов.

Оффлайн vladiko

  • Активист
  • ****
  • Автор темы
  • Сообщений: 366
  • А мне летать охота...
В какой программе созданы эти файлы? В какой кодировке они сохранены? Приложите скриншот отображения и заархивированный пример таких файлов.
У меня наконец-то дошли руки до вот этой проблемы, решить её так и не получилось, сегодня решил переустановить и переустановил систему.
А перед этим - из консоли (т.к. LightDM не загружался у меня) - примонтировал фат-32 флэшку, и на неё перенёс необходимые мне файлы.Когда я эту флэшку воткнул во вновь установленную систему - то и получил на русских именах кракозябры.
вот пример

флэшку монтировал так (если это важно):
sudo mount -t vfat -o users,uid=1000,gid=1000 /dev/sdc1 /media/user
« Последнее редактирование: Ноябрь 22, 2023, 14:37:02 от vladiko »
Использую исключительно Runtu LITE, различные версии

Оффлайн vladiko

  • Активист
  • ****
  • Автор темы
  • Сообщений: 366
  • А мне летать охота...
Имя приложенного выше файла - на самом деле должно быть "ИНФА_20_03_2021" (а не то, что получилось в итоге)
Как перекодировать теперь мне все русские имена (которые на этой флэшке) в нужную кодировку? Это возможно?
Использую исключительно Runtu LITE, различные версии

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3466
vladiko, после копирования файлов флешку отмонтировали? Файлы на диске не были повреждены? Они имеют подозрительно малый размер - 1Кб и не содержат осмысленной информации.

Более корректным способом было бы загрузиться с LiveCD|USB и скопировать файлы на внешний носитель.

Оффлайн vladiko

  • Активист
  • ****
  • Автор темы
  • Сообщений: 366
  • А мне летать охота...
после копирования файлов флешку отмонтировали? Файлы на диске не были повреждены? Они имеют подозрительно малый размер - 1Кб и не содержат осмысленной информации.
Да,  флэшку я конечно же отмонтировал, содержимое файлов нормальное (я просто в целях конфиденциальности - предварительно очистил информацию внутри, и потом выложил, ведь важно было имя файла, а не содержимое).Все файлы - не повреждены (с содержимым всё в порядке), просто русские имена файлов/папок - оказались испорченными (стали кракозябрами).Я уже вручную переименовал все эти кракозябристые на английские имена (благо русских имён было немного), так что остался лишь вопрос - почему так из консоли Рунту они испортились при копировании, и можно ли было в дальнейшем им автоматически вернуть русские наименования.В любом случае спасибо за поддержку!
Использую исключительно Runtu LITE, различные версии

Оффлайн smik55

  • Местный
  • *****
  • Сообщений: 1105
При загрузке в Live CD\USB, перед переустановкой ОС, можно было сразу создать дополнительный раздел в конце диска на свободном месте программой Gparted и на него скопировать все нужные файлы. А потом уже запустить установку системы с указанием места для установки (3-й пункт-выбор места для уст...) на первый раздел, где и была ОС. В этом случае никаких проблем не должно было возникнуть.
Тут явно не корректно сработала у вас программа копирования на флешку, возможно даже из-за негодной флешки. Такие попадаются даже среди новых. Но если содержимое вложенных в архив файлов осталось не поврежденным и нормально отображается (как я понял), то почему бы просто не переименовать названия файлов и архивов как вам надо? Лично я так и проделал с вашего ПРИМЕРА. 
--
п.с. Пока писал ответ, появился ваш. Исправлять не стал.
« Последнее редактирование: Ноябрь 22, 2023, 20:11:32 от smik55 »

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3466
почему так из консоли Рунту они испортились при копировании
Слишком много неопределённости. С какого раздела (NTFS, FAT32, EXT3/4) копировали файлы? Как монтировали его для подключения к системе? Какой командой копировали на флешку?

я просто в целях конфиденциальности - предварительно очистил информацию внутри, и потом выложил
Когда вы изменяете и сохраняете файл, его имя, кодировка и т.п. перезаписываются и отличаются от оригинального. То, что вы выложили на ресурс, уже не является файлом, скопированным с носителя.

Оффлайн vladiko

  • Активист
  • ****
  • Автор темы
  • Сообщений: 366
  • А мне летать охота...
С какого раздела (NTFS, FAT32, EXT3/4) копировали файлы? Как монтировали его для подключения к системе? Какой командой копировали на флешку?
копировал из консоли Рунту 22.04 Лайт (т.к. LightDM у меня не загружался), с единственного раздела, на который была установлена Runtu - ext4, копировал через MC, т.е.: при загрузке Runtu - LightDM не загружался, выдавал ошибку, предлагало войти в консоль, я в консоли вводил имя пользователя, пароль, далее - монтировал флэшку (команду выше показывал), затем запускал MC, в правой панели МС выбирал необходимую директорию для копирования, в левой панели МС - выбирал смонтированную флэшку, нажимал F5 и ожидал окончания процесса. Затем флэшку отмонтировал, переустановил систему, воткнул флэшку, чтобы перенести скопированную директорию, всё перенёс, но когда залез внутрь директории (что на флэшке, что на диске, куда скопировал) - увидел кракозябры в именах файлов и поддиректорий, которые были на русском языке.
Получается, что имена файлов с русскими наименованиями испортились при копировании из консоли через МС. (испортились лишь ИМЕНА файлов/поддиректорий, содержимое не пострадало абсолютно)
Использую исключительно Runtu LITE, различные версии

Оффлайн vladiko

  • Активист
  • ****
  • Автор темы
  • Сообщений: 366
  • А мне летать охота...
Когда вы изменяете и сохраняете файл, его имя, кодировка и т.п. перезаписываются и отличаются от оригинального. То, что вы выложили на ресурс, уже не является файлом, скопированным с носителя.
вот выложил заархивированный оригинал с флэшки, ничего не менял, просто запечатал в архив прямо на флэшке, и выложил.
Использую исключительно Runtu LITE, различные версии

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3466
vladiko, теперь более-менее понятно. Нужно так писать первое сообщение темы, чтобы быстрее  вникнуть в суть  :) .

Получается, что имена файлов с русскими наименованиями испортились при копировании из консоли через МС.
Нет, проблема не в mc. В данном случае нужно было указать кодировку в опциях монтирования. Обычно это делается параметром "iocharset=utf8", но из-за регрессии опции монтирования в текущих ядрах можно использовать опцию "utf8=1", то есть ваша команда монтирования может выглядеть так:sudo mount -t vfat -o users,uid=1000,gid=1000 -o utf8=1 /dev/sdc1 /media/userОтносительно UID и GID тоже нужно быть внимательным, чтобы указать значения текущего пользователя, под которым выполняется операция. Если вы делали это в консоли восстановления от root, то эти параметры указывать не обязательно. Также как и монтирование в каталог /media, которое нужно для отображения устройств в файловом менеджере графического сеанса пользователя. На уровне выполнения init 3 достаточно смонтировать например в /mnt.

Оффлайн vladiko

  • Активист
  • ****
  • Автор темы
  • Сообщений: 366
  • А мне летать охота...
В данном случае нужно было указать кодировку в опциях монтирования
Я в принципе уже и сам подозревал, что причина в том, что не указана была кодировка, но как-то не подумал, что по умолчанию произойдёт то, что произошло.
Насчёт копирования на флэшку из LiveCD - я сначала попробовал, но была проблема в том, что вложенные каталоги и их содержимое не переносилось (с какими-то сообщениями о доступах), нужно было после копирования каталогов, входить в них и продолжать копирование уже внутри каталогов, и так далее..

Насколько я понял - причина была в том, что в режиме LiveCD флэшка монтируется с правами рута... (ну или может что-то путаю, уже не помню).
Поэтому - я и решил всё сделать из консоли, а вот параметр кодировки - да, не указал.
Всем спасибо.


« Последнее редактирование: Ноябрь 23, 2023, 13:02:28 от vladiko »
Использую исключительно Runtu LITE, различные версии

Оффлайн vladiko

  • Активист
  • ****
  • Автор темы
  • Сообщений: 366
  • А мне летать охота...
Ну и раз уж теперь всё всем понятно, то остался последний вопрос:

есть ли возможность программно (а не вручную) перекодировать опять в русский ?

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

Поэтому вот и думаю - наверное есть же способ автоматической перекодировки?

Было бы интересно проверить, если подскажете как..
Использую исключительно Runtu LITE, различные версии

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3466
есть ли возможность программно (а не вручную) перекодировать опять в русский ?
Можно воспользоваться утилитой convmv (предварительно установить из репозитория):
convmv -r -f кодировка_оригинала -t нужная_кодировка /каталог_с_файламиНапример:convmv -r -f cp1251 -t utf-8 ~/Files
Если исходная кодировка указана верно и вывод выполнения даёт "нормальные" имена файлов, можно переименовать файлы с опцией --notest:
convmv --notest -r -f cp1251 -t utf-8 ~/Files

Оффлайн vladiko

  • Активист
  • ****
  • Автор темы
  • Сообщений: 366
  • А мне летать охота...
Если исходная кодировка указана верно
Так а у меня - какая исходная кодировка сейчас на флэшке? (до перекодировки была utf-8, насколько я понял, а после перекодировки в кракозябры - стала какая?)
Использую исключительно Runtu LITE, различные версии