7za.exe 9.20 não é possível criar o arquivo com o nome do arquivo de letras não inglesas (utf-8)

0

Estou com dificuldades para que o 7za.exe crie um arquivo incluindo caracteres não latinos. A codificação é utf-8, os caracteres são cirílicos. Eu tenho uma pasta com os 4 arquivos:

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

onde o conteúdo de test.py é o seguinte:

#!/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)

Enquanto eu posso criar privet.7z de privet.txt, eu não posso criar Кириллица.7z de Кириллица.txt (um arquivo vazio chamado ÐšÐ¸Ñ € иР»Ð» Ð¸Ñ † Ð ° .7z é gerado).

A saída do 7za.exe é:

C:\BEPPE\STAMPARE\TEST_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

Alguém pode me ajudar com isso? Eu também tentei de um script em lote test.bat com o seguinte conteúdo:

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

mas o resultado foi o mesmo.

    
por giuspen 05.02.2013 / 12:43

2 respostas

0

O manuseio de UTF-8 ( Unicode , na verdade) não é fácil, não me surpreenderia no mínimo que o tratamento de nomes de arquivos UTF-8 (ou mesmo não-ASCII) não tenha sido feito. O nome confuso do arquivo criado sugere problemas sérios no tratamento de nomes de arquivos (um programa de compactação / descompactação está à mercê de conteúdos possivelmente maliciosos). Eu lidaria com isso como materiais tóxicos, procurando por uma solução de compactação mais robusta.

    
por 05.02.2013 / 14:12
0

Isso funciona para mim:

  1. Faça o download do Notepad ++ (até mesmo o pacote minimalista < 900KB fará)

  2. Vá para a guia Settings / Preferences / New Document e defina a Codificação padrão como UTF-8 sem BOM :

  3. Abraumnovodocumentoedigiteoseguintecomando:

    cmd/u/c"chcp 65001 >nul && 7za.exe a -bd -y Кириллица.7z Кириллица.txt"
    
  4. Verifique se a barra de status do Notepad ++ diz ANSI como UTF-8 e salve o documento como um arquivo .BAT:

  5. Abraumpromptdecomandoeexecuteoarquivoemlote

Vejatambém aqui se quiser que a janela do prompt de comando exiba caracteres Unicode.

    
por 06.02.2013 / 18:46