Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение

Архиватор 7z и проблемы с кодировкой : Операционные системы и программное обеспечение

25.11.2024 18:02


02.09.2022 14:46
Обнаружил неприятную особенность.
Например, файлик Изменения1049.doc.7z https://storage.olegon.ru/supermag/u...ния1049.doc.7z
Если кому-то не сложно под виндой посмотреть, нормальное ли имя файла в винде, пожалуйста, напишите ниже.

Поскольку он был закинут без архивации, то форум его автоматически сжал. Сжимается просто, почти 7z a Изменения1049.doc.7z Изменения1049.doc
Особенность заключается в следующем. С каких-то пор php-fpm стал очищать переменные локали, точнее, если они никакие не задавались в самом php-fpm, то никакие в PHP не попадали, даже если были указаны на уровне сервера. Раньше было по другому. Иными словами, 7z везде работал с локалью POSIX.

И тут файл с русским именем нормально паковался, но внутри архива получалось имя ÐзменениÑ1049.doc
Как я понимаю, если 7z не мог понять кодировку имени файла, он его фигачил в виндовой, записывая на самом деле в UTF-8.
Теперь вот у меня как минимум несколько таких вот файлов

параметр -scsWIN или -scsUTF-8 для 7z не помогает...
На самом деле не такая уж трагедия, поскольку правильное имя файла есть снаружи, но хотелось бы разобраться, как просмотреть такие файлы?
02.09.2022 14:55
имя файла в винде не нормальное.
02.09.2022 15:28
Пробовал разными архиваторами - имя некорректное.
02.09.2022 15:36
да, спасибо, теперь вопрос - как это смотреть или перекодировать нормально?
02.09.2022 16:27
Примерно так: iconv -f UTF8 -t LATIN1

Код:
# ls *.7z
Изменения1049.doc.7z
# 7zr l -ba *.7z
2022-09-01 14:32:59 ....A       664064       494126  ÐзменениÑ1049.doc
# 7zr l -ba *.7z | iconv -f UTF8 -t LATIN1
2022-09-01 14:32:59 ....A       664064       494126  Изменения1049.doc
02.09.2022 17:11
хм, спасибо, это вариант, но я имел ввиду, может ли 7z как-то это лечить?
вот ключ у него scs есть, но почему-то совсем не помогает...
02.09.2022 17:36
Цитата:
OlegON вот ключ у него scs есть
Он для архивации по файл-списку
02.09.2022 17:46
Кстати вот

Код:
# locale
LANG=ru_RU.UTF-8
LANGUAGE=
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=

# LC_ALL=C 7zr l -ba *.7z
2022-09-01 14:32:59 ....A       664064       494126  Изменения1049.doc
02.09.2022 20:04
Точно, если локаль опять сбить, то имена отображаются нормально...
Часовой пояс GMT +3, время: 18:02.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.