LinuxForum.Fans
Тема

Цикл «Переходим на Ubuntu вместе»

Автор: redix 94 сообщений 43683 просмотров
#339410
"BWR⇓" написал:
После скачивания и распаковки у меня не правильно отображалась кодировка.

ты даже не осилил показать нам пруфскрин этого "неправильно", о чём с тобой говорить-то?

#339419

Пойду скачаю этот файл, посмотрю как откроет MiniCommander на телефоне. Чувствую, проблем не будет. А то, что запаковывается в оффтопике, ясное дело, будет открываться с битой кодировкой, потому что UTF8 мысы не осилило в качестве системной.

#339426

yars, вангую, что BWR, нам рассказывает о проблемах с кодировками в его аудиоплеере.

#339440
"drBatty⇓" написал:
вангую, что BWR, нам рассказывает о проблемах с кодировками в его аудиоплеере.

В плеере все отлично и никаких проблем не было. Я удалил файлы с битой кодировкой и заново распаковал после установки WinRAR'а.

#339442
drBatty написал:
[quote="yars⇓"]Не вижу необходимости пользоваться rar. Tar+xz за глаза хватает.

да. А ещё есть открытый unrar.

И кстати, WinRAR маздайный умеет распаковывать tar+xz, правда только №5. Для маздайщиков можно делать tar+bz2, они его своим варезным WinRAR'ом открывают.

"BWR⇓" написал:
ЗАПИСКИ СУМАСШЕДШЕГО в .zip архиве, да и кодировка бывала кривой при распаковке.



что сказать-то хотел?[/quote]
Так на Яндекс.Диске и у меня все нормально было

#339472

формат ZIP архива не подразумевает разных кодировок!
он считает что распаковывать будут в той же кодировке в какой кодировалось...
Т.е. если вы запакуете в ЗИП в Линуксе, то в оффтопике тоже не прочитаете. Ну конечно если имена файлов будут кирилические или другие вне ASCII...
пользуйте 7zip и будет вам счастье!

#339480
"Харитон⇓" написал:
формат ZIP архива не подразумевает разных кодировок!

да ладно!

"Харитон⇓" написал:
он считает что распаковывать будут в той же кодировке в какой кодировалось...

А вот путный распаковщик считает, что упаковывали в маздае как 866 или 1251(я без понятия). И переделывает в utf-8. Или куда надо. И, AFAIK, часто в самом архиве имена хранятся в некой третьей кодировке, потому их дважды надо перепиливать.

"Харитон⇓" написал:
пользуйте 7zip и будет вам счастье!

Вы когда-нибудь слышали про утилиту iconv? Я не знаю как оно в вашем маздае, а у меня проблем нет.

#339483

иконв - великолепная утилита, да вот только как ее прикрутить к системным вызовам unzip при создании файла в Линукс?
перекодировать текст это одно а имя файла это другое...
вариантов кроме как создавать партицию с опцией codepage=866 выхода не вижу...

#339487

хотелось бы решение в студию. буд благодарен.
для теста:
http://www.mishchenko.org.ua/1.zip
вот файл сделанный в виндовс хр средствами самой хр...
покажите как мне получить оригинальное имя файла

#339488

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

#339496
"Харитон⇓" написал:
перекодировать текст это одно а имя файла это другое...
"Харитон⇓" написал:
вариантов кроме как создавать партицию с опцией codepage=866 выхода не вижу...

ну во первых есть специальные утилиты.

Во вторых есть sed. Sed умеет любые строки редактировать, в т.ч. и имена файлов. http://emulek.tk/sed/ch04s14.html#id2524933

#339498
"Харитон⇓" написал:
опять таки как автоматически определить кодировку(она ведь есть в зип файле, вы так утверждаете) и перекодировать в нужную...

ну проще всего попробовать. ls | iconv -f ОТКУДА

#339503
Харитон написал:
хотелось бы решение в студию. буд благодарен.
для теста:
http://www.mishchenko.org.ua/1.zip
вот файл сделанный в виндовс хр средствами самой хр...
покажите как мне получить оригинальное имя файла

1. Удаляем пакеты из системы:

sudo apt-get remove rar unrar

2. Качаем оригинальный rar с официального сайта под свою систему:

www.rarlab.com/download.htm

3. Распаковываем в какой-либо каталог, переходим в него в консоли и для установки запускаем:

sudo make install

Решение проблемы с кривой кодировкой в zip архивах (только чтение архивов, созданных в Windows - при открытии архива из Linux в Windows архив будет с битой кодировкой):

1. Удаляем распаковщик zip и 7zip:

sudo apt-get remove unzip p7zip-full

Вместе с ними снесется file-roller и ubuntu-desktop (это не тот десктоп, что гном, не надо бояться, ничего страшного не случится)

Ставим пакет для 7zip и возвращаем архиватор:

sudo apt-get install p7zip file-roller

#339505


#339547
Харитон написал:
хотелось бы решение в студию. буд благодарен.
для теста:
http://www.mishchenko.org.ua/1.zip
вот файл сделанный в виндовс хр средствами самой хр...
покажите как мне получить оригинальное имя файла

С iconv не совладал, вываливает ошибку, посему - велосипед :) :

text

#!/usr/bin/env python3
#_*_ coding: utf-8 _*_

import sys import os

if len(sys.argv) < 2: sys.stderr.write('Usage: %s <filename>\n' % sys.argv[0]) raise SystemExit(1)

for name in sys.argv[1:]: try: new_name = name.encode(encoding='utf-16-le').decode('866').replace('\x00', '') print('%s ---> %s' % (name, new_name)) os.rename(name, new_name) except Exception as err: print(err)

Скармливаете скрипту файлы для переименования.

#339548
"Харитон⇓" написал:
хотелось бы решение в студию. буд благодарен.
для теста:
http://www.mishchenko.org.ua/1.zip
вот файл сделанный в виндовс хр средствами самой хр...
покажите как мне получить оригинальное имя файла
text
$ find -type f | while read N1; do N2=$(echo "$N1" | iconv -f cp866); [ "$N1" != "$N2" ] && cp -v "$N1" "$N2"; done
«./\222\245\252\341\342\256\242\353\251 \244\256\252㬥\255\342.txt» -> «./Текстовый документ.txt»
#339549
"-=Serj=-⇓" написал:
С iconv не совладал, вываливает ошибку
text
 Управление выводом:
  -c                         пропускать на выводе
                             недопустимые знаки
#339553

drBatty, пробовал, не вышло...

#339561
"Харитон⇓" написал:
определить кодировку(она ведь есть в зип файле, вы так утверждаете

Насчёт кодировки не знаю, но, вроде, из zip'a можно выудить информацию о системе, в которой был создан файл и, соответственно, предположить кодировку, например, для XP - UTF-16LE.

#339564
"-=Serj=-⇓" написал:
drBatty, пробовал, не вышло...

нет такого слова "не вышло". Показывайте как пробовали, или прямо скажите -- не осилил.

Войдите или зарегистрируйтесь, чтобы ответить.