-1

У меня есть архив RAR, имена файлов которого находятся в GB2312, а не в Юникоде. Поэтому после того, как я его извлек, появилось много предупреждений о недопустимой кодировке.

Говорят, что официальные утилиты могут решить эту проблему, но я использую Raspberry Pi с процессором ARM. На официальном сайте представлены только версии для x86 и x64.

Так как же мне нормально распаковать архив на компьютере, основанном на ARM?

1 ответ1

0

Стандартными утилитами Unix для этих заданий являются iconv и recode .

По сути, после unrar архива в пустой директории вы проверяете точный набор символов с помощью командного file:

$ file -bi MyFileName
  text/plain; charset=us-ascii

и теперь вы можете изменить набор символов с помощью одного из

 iconv -f gb2312 -t utf8 filename > newfilename
 recode UTF-8 filename

Примечание: recode работает с файлами in place , поэтому вы можете попробовать его на некоторых копиях, прежде чем раскрывать их на реальных данных.

Если вам также нужно перевести имена файлов:

for i in *; do 
     newi=$(echo "$i" | iconv -f gb2312 -t utf-8)
     mv "$i" "newi"
done 

Я не знаю, можете ли вы использовать iconv в качестве фильтра для самого unrar , что-то вроде

unrar YourArchive -p | iconv -f gb2312 -t utf-8 > somefile

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .