Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 16 Sep 24 17:28:15, всего сообщений: 10763
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 2410 из 10763 ===================================== RU.UNIX.BSD =
От   : Eugene Grosbein                  2:5006/1           15 Jan 15 17:23:18
Кому : Vassily Kiryanov                                    15 Jan 15 17:23:18
Тема : Re: файлы с русскими именами
FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+96e8b604
На   : area://RU.UNIX.BSD?msgid=2:5054/36+54b7c265
= Кодировка сообщения определена как: CP866 ==================================
==============================================================================
15 янв 2015, четверг, в 14:34 NOVT, Vassily Kiryanov написал(а):

EG>> Сомневаюсь насчёт "побились". Скорее всего, у тебя на 8.2 имена были
EG>> в кодировке KOI8-R, так и развернулись из архива, а на десятке локаль
EG>> поди у тебя UTF-8. А перекодирования в tar никакого нет.

VK> Создал из папки с русскими именами пять tar-архивов, в четырёх случаях перед
VK> вызовом "tar -c" присутствовала одна из строчек
VK> #export LC_ALL=ru_RU.UTF-8
VK> #export LC_ALL=C
VK> #export LC_ALL=ru_RU.KOI8-R
VK> #export LC_ALL=ru_RU.CP1251
VK> а в пятом случае ни одной переменной "LC_*" не было.
VK> Из всех пяти архивов у четырёх, которые не UTF-8, совпали md5-суммы. Т.е. для
VK> tar указание любой восьмибитной кодировки имён файлов равносильно её неуказанию,
VK> влияние оказывает только указание многобайтной кодировки, хотя из них я и
VK> проверил только лишь UTF-8.

Так и должно быть. Как я уже говорил, в tar нет перекодировки и на локаль
ему плевать, он сохраняет имена так, как они лежат на файловой системе.

В отличие от NTFS и прочих, которые сохраняют имена в определенной
кодировке, в UFS на фре нет понятия кодировки - в именах файлов
допустимы любые байты, кроме зарезервированных / (разделитель каталогов)
и нулевого байта (терминатор строк). Интерпретация имён оставлена
приложениям - хотят, интерпретируют в KOI8-R, хотят - в CP1251,
хотят - в UTF-8 или других.

VK> Потом я оба [отличающихся] tar-файла проверял уже на распаковку (tar-ом) под
VK> 10.1 и смотрел, что будет с именами, тоже пытаясь задавать разные LC_ALL. Как и
VK> следовало ожидать, имена файлов не искорёжились только если и при упаковке и при
VK> распаковке перед вызовом tar стояла строка "export LC_ALL=ru_RU.UTF-8". Hо это
VK> ладно, это неудивительно. Странно другое, мне удалось распаковать test.tar с
VK> 8-ми битной кодировкой имён, сохранив имена в порядке, если я распаковывал их не
VK> tar-ом, а копированием из-под MidnightCommander.

А у mc своя реализация tarfs, он системный bsdtar не использует.

VK> Вот это уже меня удивило не на
VK> шутку. Значит информация о русских именах в каком-то более-менее пристойном виде
VK> сохраняется и в однобайтной (непонятно какой) кодировке, просто tar её извлечь
VK> не может.

Существуют разные форматы tar-архивов. В формате gnutar не сохраняется
информация о кодировке имён файлов, имена сохраняются как последовательности
"сырых байтов" - как сохранили, так и развернули и пофиг на локали.
Этот формат можно указать при создании архива через tar --format=gnutar,
но это не дефолт. По дефолту при локали UTF-8 tar сохраняет информацию
об этой локали в именах файлов, которые являются корретными строчками
в кодировке UTF-8 (ASCII - подмножество UTF-8).

Eugene
--- slrn/1.0.1 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.068544 секунды