Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Не получается перекодировать имена файлов  (Прочитано 1135 раз)

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

Оффлайн bujhm666

  • Автор темы
  • Участник
  • *
  • Сообщений: 185
  • Arch Linux
    • Просмотр профиля
Есть очень много файлов скопированных с ntfs раздела. То ли сразу после копирования, то ли после chmod все файлы с русскими именами приняли вид " èÓáÔ¬¿® ß»Óáó«þ¡¿¬ »« ÓáßÞ¿ÓÑ¡¿´¼ õᮽ«ó.txt ". Содержимое файлов не пострадало. Т.к. файлов очень много (несколько сотен) то ручное переименование отпадает. Утилита convmv с различными вариантами utf8, cp1251, cp866, koi8-r, iso8859-5 и т.д результатов не дала, просто крякозябры превращаются в другие крякозябры. Заново скопировать файлы нет возможности. Прилагаю архив с примерами. Очень прошу посмотрите пожалуйста. может будут у кого идеи.
Заранее спасибо

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Не получается перекодировать имена файлов
« Ответ #1 : 13 Августа 2008, 14:56:34 »
chmod тут не при делах, он имена файлов не трогает.

Вспоминай как подключался раздел ntfs. Может это двойная перекодировка? Кстати, для более точного определения, что случилось с кодировкой, желательно иметь список имён файлов поболее...

Оффлайн bujhm666

  • Автор темы
  • Участник
  • *
  • Сообщений: 185
  • Arch Linux
    • Просмотр профиля
Re: Не получается перекодировать имена файлов
« Ответ #2 : 13 Августа 2008, 15:13:26 »
Копировал с компа Xubuntu 7.10  с помощью pyNeighborhood и smbfs монтировалась расшаренная папка на моем компе и туда в MC заливались файлы. Вот и все. Далее производились только изменения прав пользователя и владельца.
Эти два файла я на работу взял чтоб под виндой проверить. Больше под рукой сейчас нет.

zsa

  • Гость
Re: Не получается перекодировать имена файлов
« Ответ #3 : 13 Августа 2008, 16:59:01 »
Попробуйте подключить другой диск в западноевропейской кодировке и скопировать свои файлы туда.
Потом перемонтируйте его с кодировкой windows-1251... Не получится - пробуйте варианты.
Мысль, я думаю, ясна.

Вот ещё файлик есть, уж не помню где брал...

имя файла: convert_filesystem_charset

- - - линия отреза - - -
#!/bin/sh

fstab=/etc/fstab
orgcharset=INVALID_CHARSET_NAME

export LC_ALL=POSIX

# Find filesystems suitable for conversion
filesystems=`awk '!/vfat|ntfs|iso9960|udf|auto|autofs|swap|subfs|sysfs|proc|devpts|nfs|smbfs|^#/{print $2}' "$fstab"`
# Locate files whose names need to be converted and sort the list
find $filesystems -xdev | {
   while read; do
      # Check if the filename needs conversion (i.e. is not a correct UTF-8 string)
      if ! echo `basename "$REPLY"` | iconv -f UTF-8 -t UTF-8 &>/dev/null; then
         echo "$REPLY"
      fi
   done
} | sort -r | {
   # Rename files
   while read; do
      dirname=`dirname "$REPLY"`
      orgfname=`basename "$REPLY"`
      newfname=`echo "$orgfname" | iconv -f "$orgcharset" -t UTF-8`
      if [ $? -ne 0 ]; then
         echo "Error: iconv failed for $REPLY. Skipping." >&2
         continue
      fi
      mv "$REPLY" "$dirname"/"$newfname"
   done
}


 

Страница сгенерирована за 0.027 секунд. Запросов: 23.