Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: tar и кирилица  (Прочитано 45080 раз)
0 Пользователей и 1 Гость смотрят эту тему.
один юзер
Гость
« : 20-05-2007 16:18 » 

в линуксе архивирую tar-ом(#tar -czf) документацию с русскими названиями в виндовс Winrar-ром распаковываю а вместо букв значки, можно что нибудь с этим сделать?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 20-05-2007 19:23 » 

У тебя в разных ОС используются разные кодировки. Выход: не использовать в именах файлов других символов, кроме ASCII.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #2 : 21-05-2007 05:33 » 

попробуй протись по каталогу который хочешь за архивировать утилиткой
convmv -f utf-8 -t cp1251
что бы всё перекодировать с виндовую кодировку, а затем уже архивируй
эксперементировать естественно лучше на временной папке Улыбаюсь
Записан

Странно всё это....
один юзер
Гость
« Ответ #3 : 21-05-2007 19:56 » 

RXL,
У тебя в разных ОС используются разные кодировки. Выход: не использовать в именах файлов других символов, кроме ASCII.

я архивирую каталог примонтированный smbmount находяшийся на виндовс машине
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #4 : 22-05-2007 10:12 » 

RXL,
У тебя в разных ОС используются разные кодировки. Выход: не использовать в именах файлов других символов, кроме ASCII.

я архивирую каталог примонтированный smbmount находяшийся на виндовс машине
а вот это как раз всё равно, т.к. для tar имена каталогов в кодировке Linux машины
Записан

Странно всё это....
один юзер
Гость
« Ответ #5 : 22-05-2007 13:27 » 

а эта утилита convmv -f utf-8 -t cp1251 на виндовс машине ничего не поменяет(кодировку в именах файлов например )а вдруг она станет нечитаемой там(виндовс машине)?
ведь документы то там
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 22-05-2007 18:46 » 

один юзер, конечно изменится! Только LogRus и не предлагал тебе делать это на шаре. Делай это с копией на локальном диске.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
один юзер
Гость
« Ответ #7 : 26-05-2007 12:23 » 

спасибо помогло Улыбаюсь
convmv -r -f koi8-r -t cp1251 --notest /home/dir
Записан
Chuda
Гость
« Ответ #8 : 09-06-2007 09:58 » 

альтернативное решение:
в кде на значке файла с русским именем, который нужно заархивировать, нажать правой кнопкой мыши, выбрать в контекстном меню "упаковать в tar.gz" (ну или другой вариант, какой нужен), перенести на машину с виндой и нормально открыть установленной там программой.
обязательное условие: хороший коробочный дистрибутив с настройками по умолчанию. у пользователей, любящих альтернативные настройки и пересборку под себя всего и вся, этот вариант может и не сработать.

Ещё раз повторю: не ищите проблемы там, где их нет.
Записан
Руслан
Гость
« Ответ #9 : 18-07-2010 20:34 » 

Братцы, помогите, аналогичная ситуация, только запутаннее.
Я скопировал имена файлов в текстовый файл, открывал его в Мозилле, Интернет Эксплорере - все показывают, что кодировка DOS (CP866).
Но convmv конвертировать не хочет.
Пробовал из CP866 в cp1251 - ругается, что "cp1251 doesn't cover all needed characters", из CP866 в utf8 - утверждает. что "Skipping, already UTF-8". Блин, а как же тогда другие проги определяли CP866? Не понял
Ну ладно, попробовал конвертировать из  UTF-8, так не получается, опять "doesn't cover all needed characters" Жаль
Вот файл с моими попытками, может, кто подскажет, что это все-таки за кодировка и как ее привести к читаемому виду?

* test.txt (6.94 Кб - загружено 1875 раз.)
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #10 : 18-07-2010 21:18 » 

Я сейчас посмотрел через hexeditor, тот файл, что ты приложил, он явно не в кодировке CP866. Следовательно без испытуемого, все остальное это гадать на кофейной гуше.

В приложении первый дамп твоего файла. Второй файл это я сделал файл с алфавитом в кодировке CP866. Как видиш, есть очень много символов, которые не входят в алфавит.

* prob00000000.html (9.34 Кб - загружено 1094 раз.)
* alpha00000000.html (2.21 Кб - загружено 1035 раз.)
« Последнее редактирование: 18-07-2010 21:35 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 19-07-2010 10:09 » 

Руслан, выполни команды и покажи результат:

1. locale

2. В директории с проблемными файлами: env LC_ALL=C ls -1

Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Руслан
Гость
« Ответ #12 : 19-07-2010 19:24 » 

Результаты такие:

# locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

# env LC_ALL=C ls -1
Не понялНе понялНе понялНе понялНе понял? _?Не понялНе понялНе понялНе понял?.pdf
Не понялНе понялНе понялНе понялНе понял?_?Не понял??_?Не понялНе понялНе понял_?Не понялНе понялНе понял??.htm
Не понялНе понялНе понялНе понялНе понялНе понялНе понялНе понялНе понялНе понял??_?Не понялНе понял?_linux_??_?Не понялНе понялНе понялНе понялНе понял??_?Не понял??_?Не понялНе понялНе понялНе понялНе понялНе понялНе понялНе понялНе понялНе понялНе понял??.htm
Не понялНе понялНе понялНе понялНе понял? Не понялНе понялНе понялНе понялНе понялНе понялНе понялНе понялНе понял? Не понялНе понялНе понялНе понялНе понялНе понялНе понялНе понял?? Не понялНе понялНе понял?.htm
Не понялНе понялНе понялНе понялНе понял? Не понялНе понялНе понялНе понялНе понялНе понялНе понялНе понялНе понял? Не понялНе понялНе понялНе понялНе понялНе понялНе понялНе понял?? Не понялНе понялНе понял?_files

Приложил примеры проблемных файлов.

* Ї®¤ў Ї агб.pdf (95.68 Кб - загружено 1060 раз.)
Записан
Руслан
Гость
« Ответ #13 : 19-07-2010 19:28 » 

Ну то есть если без смайлов, то

# env LC_ALL=C ls -1
???????????????? _??????????????.pdf
????????????????_??????_??????????_????????????.htm
????????????????????????????????_????????_linux_??_??????????????????_??????_????????????????????????????????????.htm
???????????????? ???????????????????????????? ?????????????????????????? ??????????.htm
???????????????? ???????????????????????????? ?????????????????????????? ??????????_files


* ˜ўҐавЎ®в _Њ®вл«ҐЄ.pdf (257.22 Кб - загружено 2415 раз.)
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #14 : 19-07-2010 19:47 » 

Руслан, Не получается Улыбаюсь Приложенные тобой файлы у меня при скачивании автоматически записываются в utf-8 кодировке.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Руслан
Гость
« Ответ #15 : 19-07-2010 20:21 » 

Можно ли что-то сделать?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #16 : 19-07-2010 20:23 » new

Вручную у тебя не получается переименовать?
Попробуй обжать файл зипом и выставить сюда архив. Может тогда не получится автомата.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 20-07-2010 14:33 » 

И имя файла в атаче в ужасном виде. Как тебе все это удается, если страница и база в UTF-8...



"вертбот _Мотылек.pdf"

ls -1 | iconv -f utf8 -t cp1251 | iconv -c -f cp866 -t utf-8

И не пользуйся больше кривым софтом.



Запусти в директории с этими файлами:

Код:
#!/bin/sh

for IN in *
do
  OUT=`echo "$IN" | iconv -f utf8 -t cp1251 | iconv -c -f cp866 -t utf-8`
  echo "mv \"$IN\" \"$OUT\""
#  mv "$IN" "$OUT"
done

Когда убедишься, что имена он пишет нормальные - раскомментируй строку с mv.
« Последнее редактирование: 20-07-2010 18:04 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Руслан
Гость
« Ответ #18 : 26-07-2010 17:57 » 

Спасибо!
Все получилось (ну, почти все, пара десятков файлов оказалась еще в какой-то кодировке и криво переименовалась, дык это и руками добить не проблема Отлично ) Зато остальные пара-тройка сотен! Класс!
Еще раз огромное спасибо!
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 26-07-2010 18:02 » 

Не за что. Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines