1

Проблема в следующем, скачивая текстовый файл в любом из форматов FB2, DOC, RTF, TXT при распаковке получаю абракадабру http://i073.radikal.ru/1212/8f/a5c80439f54f.jpg
на скрине первая картинка - архив, вторая - распакованный файл. Нашёл такой http://webstation.lib.tpu.ru/?p=664 сделал как там советуют, результат нулевой. Народ, может кто сталкивался с похожей проблемой, не знаю чего не хватает, какие пакеты следует доустановить.

Искать и не сдаваться, найти и перепрятать.

enca

3

Уже был установлен, я ещё до кучи установил несколько пакетов из списка, но проблема не ушла.

Искать и не сдаваться, найти и перепрятать.

4 (06.12.2012 22:37:12 отредактировано afanasev.p)

По ссылке - описание действия для локализации консоли. У вас же - имена файлов в архивах изначально записаны в cp1251 (предположительно). для решения траблы можно использовать что-то вроде этого:

#!/bin/bash
# распаковывает zip-архив, изменяет кодировку имен файлов с cp1251 на utf8
# @required unzip
# @required iconv
# @param string    путь к zip-файлу
# @param string    путь к директории, в которую zip-файл будет распакован
#                      * если указана несуществующая директория - она будет создана
#                      * если директория не указана, то zip-файл будет распакован в текущую директорию

IFS_=${IFS}
IFS=$'\n'
CP_FROM=cp1251
CP_TO=utf8

[ $# -ne 1 ] && [ $# -ne 2 ] && echo "Use $(basename $0) <zip file name> [<destination directory>]" && exit 1
fileName=${1}
destDir=${2:-./}

[ ! -f "$fileName" ] && echo "File '${fileName}' not exists. Exit" && exit 2
mkdir -p "${destDir}" 2>/dev/null
[ ! -d "${destDir}" ] && echo "Directory '${destDir}' not exists. Exit" && exit 2

unzip ${fileName} -d ${destDir} 2>&1 1>/dev/null
[ $? -ne 0 ] && echo "Error when trying to decompress file: '${fileName}'. Exit" && exit 2

pushd $(pwd) 2>&1 1>/dev/null
cd ${destDir}

for oldDirName in $(find ./ -type d); do
    newDirName="$(echo $oldDirName | iconv -f ${CP_FROM} -t ${CP_TO} 2>/dev/null)"
    [ -z ${newDirName} ] && echo "Directory skipped: ${oldDirName}" >&2 && continue
    mkdir -p "${newDirName}"
done

for oldFileName in $(find ./ -type f); do
    newFileName="$(echo ${oldFileName} | iconv -f ${CP_FROM} -t ${CP_TO} 2>/dev/null)"
    [ -z ${newFileName} ] && echo "File skipped: ${oldFileName}" >&2 && continue
    cp "${oldFileName}" "${newFileName}" 2>/dev/null
done
popd 2>&1 1>/dev/null
exit 0

Попробуйте, мб поможет. Возможно стоит сначала подобрать исходную кодировку, в которой записаны имена файлов

И баба с воза, и волки сыты...
afanasev.p пишет:

изменяет кодировку имен файлов

Да, Вы правы. Что-то я поторопился.

max2771 пишет:

Уже был установлен

И что помешало воспользоваться?

enconv file.txt file01.txt