@GNU-like_RobertOS0

(Android)Как изменить кодировку названия файлов, чтобы удалить их?

Скачал zip-файл, распаковал его в андроиде, а в zip'е есть файлы с названием по типу �� ���ᡫ��� �����.html, удалить которые не получается.

Файловый Менеджер и termux при попытке удаления пишут, что файла с таким именем нет, при этом, что странно, редактировать содержимое этих файлов и в менеджере файлов, и в термуксе(vim) я могу.

Есть подозрение, что имя файла в windows-кодировке(файл для windows, скорее всего), которую андроид не распознаёт, но, другие файлы в zip'е имели нормальные имена.

На пк(GNU/Linux) adb тоже пишет, что нет таких файлов.

В интернете пишут, что нужно использовать iconv, но я находил примеры для перекодировки содержимого файла, а примеров с перекодировкой имени файла и заменой им предыдущего файла с нераспознанной кодировкой я не находил.
Или можно обойтись какой-нибудь простой C-программкой и из-под термукс удалить эти файлы?

Я не знаю, можно ли здесь приводить ссылку на zip-файл, вдруг это вирус.
  • Вопрос задан
  • 511 просмотров
Решения вопроса 1
@maksam07
Что показывает консоль с командой ls -b в каталоге с такими файлами?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@rPman
редактировать эти файлы и в Менеджере файлов, и в термуксе(vim) я могу
вот и удаляй их этими средствами

в zip нет стандарта на кодировку, и соответственно если кто то на windows запишет русские буквы с такой кодировкой, на linux так и будет...

вот полистай тему, там предлагают кучу методов как распаковать такие zip файлы

upd. 7z умеет работать с архивами с указанной кодировкой ключ -scsКОДИРОВКА, как распаковывать так и упаковывать, соответственно распаковывай, редактируй, упаковывай
Ответ написан
Vapaamies
@Vapaamies
Психанул и снес свои ответы козлам, не отмечающим…
Нужно найти терминал или другую программу, не пытающуюся (неправильно) переводить прочитанные из ФС данные в UTF-8, а выводящую их в виде esc-последовательностей с кодами, как это делает Python, если не задать ему режим UTF-8. Тогда останется скопировать эти коды в команду rm. Можно ли задать 7-битную кодировку в termux, нечто вроде en_US.US-ASCII? Или тот же Python попробовать...

Может еще сработать способ с удалением файла не по имени, а через номер inode, если есть способ его узнать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы