7za.exe 9.20 не удается создать архив с именем файла, отличным от английского (utf-8)

Я борюсь, чтобы 7za.exe создайте архив, включающий нелатинские символы.
Кодировка UTF-8 символы кириллицы.
У меня есть папка с 4 файлами:

7za.exe privet.txt Кириллица.txt test.py

где содержание test.py следующий:

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

SOURCE_FILE = "Кириллица.txt"
DEST_ARCHIVE = "Кириллица.7z"

import subprocess

subprocess.call('7za a -bd -y privet.7z privet.txt', shell=True)

cmd_str = '7za a -bd -y %s %s' % (DEST_ARCHIVE, SOURCE_FILE)
subprocess.call(cmd_str, shell=True)

пока могу создать привет.7z из бирючины.txt, я не могу создать Кириллица.7z от Кириллица.тхт (пустой архив назван КÐÑ€ÐÐ"Ð"Ðца.7z вместо этого генерируется).

вывод из 7za.исполняемый is:

C:BEPPESTAMPARETEST_7za_cyrillic>python test.py
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Scanning
Creating archive privet.7z
Everything is Ok
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Scanning
ÐsиÑ_иллиÑ┼а.txt:  WARNING: Impossibile trovare il file specificato.
Creating archive ÐsиÑ_иллиÑ┼а.7z
WARNINGS for files:
ÐsиÑ_иллиÑ┼а.txt : Impossibile trovare il file specificato.
----------------
WARNING: Cannot find 1 file

может кто-нибудь помочь мне с этим?
Я также попробовал из теста пакетного сценария.bat со следующим содержимым:

7za.exe a -bd -y privet.7z privet.txt
7za.exe a -bd -y Кириллица.7z Кириллица.txt

но результат был тот же.

26
задан giuspen
15.11.2022 15:04 Количество просмотров материала 2691
Распечатать страницу

2 ответа

обработка UTF-8 (Unicode, реально)не легко, меня бы не удивило, что обработка имен файлов UTF-8 (или даже не ASCII) просто не была сделана. Перепутались имя файла, созданного намеки на серьезные проблемы в обработке имен файлов (программа сжатия/распаковки на милость, возможно, вредоносного содержимого). Я бы справился с этим, как с токсичными материалами, в поисках более надежного решения для сжатия.

0
отвечен vonbrand 2022-11-16 22:52

это работает для меня:

  1. скачать Notepad++ (даже<900kb минималистский пакет будет делать)

  2. перейти к Settings / Preferences / New Document tab и установить по умолчанию кодирование to UTF-8 без BOM:

    1

  3. откройте новый документ и введите в него следующую команду:

    cmd /u /c "chcp 65001 >nul && 7za.exe a -bd -y Кириллица.7z Кириллица.txt"
    
  4. убедитесь, что строка состояния Notepad++говорит ANSI как UTF-8 и сохраните документ как .Файл BAT:

    2

  5. Откройте командную строку и запустите пакетный файл

см. Также здесь если вы хотите, чтобы окно командной строки, чтобы отобразить символы Юникода.

0
отвечен Karan 2022-11-17 01:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх