= Сообщение: 10781 из 10796 ==================================== RU.UNIX.BSD = От : Eugene Grosbein 2:5006/1 26 Oct 24 09:38:46 Кому : Yuri Kosivtsov 26 Oct 24 09:38:46 Тема : Re: есть тут кто живой? FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+bde0a7ac На : area://RU.UNIX.BSD?msgid=2:5021/29+671ac37a = Кодировка сообщения определена как: IBM866 ================================= Ответ: area://RU.UNIX.BSD?msgid=2:5021/29+672159f1 ============================================================================== 24 окт. 2024, четверг, в 21:43 NOVT, Yuri Kosivtsov написал(а):
EG>> env LANG=ru_RU.KOI8-R tar ... EG>> То есть, tar запустится с локалью KOI8-R. YK> Спасибо. Более-менее понятно. YK> То есть если я на машине с локалью KOI8-R сделаю файл, например YK> tar -cfvz docs.tgz document YK> а потом его распакую на машине с другой локалью YK> tar xfz docs.tgz YK> то есть шанс, что русские имена файлов в полученном каталоге document YK> будут корректными?
Это зависит, в частности, от формата созданного tar-файла, ибо их множество не вполне совместимых. В man libarchive-formats на поддерживаемых версиях дан список и особенности.
pax использует UTF-8 для кодирования имён файлов в архиве, поэтому очень важно, чтобы при создании архива в формате pax команда tar запускалась с той же локалью, в которой сохраняемые файлы, так что она сможет без искажений перекодировать имена из исходной кодировки в UTF-8.
Другие форматы могут сохранять имена "как есть" без преобразования кодировки и без указания кодировки, так что для корректного извлечения надо убедиться, что при распаковке не происходит попытки перекодировки.
Кстати сказать, на современных версиях FreeBSD в качестве tar в отличие от старых версий, где это был GNU tar, нынче используется bsdtar, который является обёрткой над libarchive и поэтому умеет создавать и распаковывать не только tar-файлы, но и архивы других форматов. Hапример, он может создавать переносимые ZIP: