7za.exe 9.20 kann kein Archiv mit einem Dateinamen erstellen, der nicht aus englischen Buchstaben besteht (utf-8)

1168
giuspen

Ich habe Probleme, 7za.exe ein Archiv mit nicht lateinischen Zeichen erstellen zu lassen. Die Kodierung lautet utf-8, die Zeichen sind kyrillisch. Ich habe einen Ordner mit den 4 Dateien:

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

wobei der Inhalt von test.py folgender ist:

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

Während ich privet.7z aus privet.txt erstellen kann, kann ich Кириллица.7z aus Кириллица.txt nicht erstellen (stattdessen wird ein leeres Archiv mit dem Namen .и €Ñ € Ð »Ñ † ° .7z erzeugt.).

Die Ausgabe von 7za.exe lautet:

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 

Kann mir jemand dabei helfen? Ich habe auch aus einem Batch-Skript test.bat mit folgendem Inhalt versucht:

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

aber das Ergebnis war das gleiche.

0

2 Antworten auf die Frage

0
vonbrand

Der Umgang mit UTF-8 ( wirklich Unicode ) ist nicht einfach. Es würde mich nicht überraschen, dass der Umgang mit UTF-8-Dateinamen (oder sogar Nicht-ASCII) -Dateinamen nicht durchgeführt wurde. Der durcheinandergebrachte Dateiname weist auf schwerwiegende Probleme beim Umgang mit Dateinamen hin (ein Komprimierungs- / Dekomprimierungsprogramm ist möglicherweise böswilligen Inhalten ausgeliefert). Ich würde das als giftiges Material behandeln und nach einer robusteren Kompressionslösung suchen.

Ich möchte diese Methode auch vermeiden, aber im Moment muss ich wirklich einen Weg finden, weil ich mehrere Dokumente komprimiert und mit diesem Tool geschützt habe, das mit Linux funktioniert, das unter Linux gut funktioniert, aber unter Windows diese schreckliche Einschränkung hat giuspen vor 11 Jahren 0
0
Karan

Das funktioniert für mich:

  1. Laden Sie Notepad ++ herunter (selbst das minimalistische Paket <900KB reicht aus)

  2. Gehen Sie auf die Settings / Preferences / New DocumentRegisterkarte und legen Sie die Standard - Kodierung auf UTF-8 ohne BOM :

    1

  3. Öffnen Sie ein neues Dokument und geben Sie den folgenden Befehl ein:

    cmd /u /c "chcp 65001 >nul && 7za.exe a -bd -y Кириллица.7z Кириллица.txt" 
  4. Stellen Sie sicher, dass in der Statusleiste von Notepad ++ ANSI als UTF-8 angegeben ist, und speichern Sie das Dokument als .BAT-Datei:

    2

  5. Öffnen Sie eine Eingabeaufforderung und führen Sie die Stapeldatei aus

Siehe auch hier, wenn das Eingabeaufforderungsfenster Unicode-Zeichen anzeigen soll.

Auf meinem Windows XP SP3 mit italienischer Sprache funktioniert es nicht. Ich habe wirklich viele Male mit Version 920 und 922 versucht, aber nichts :( Viele Tanks für eure Hilfe. giuspen vor 11 Jahren 0
Irgendwelche Fehler? Funktioniert gut in Win7 x64 (Englisch). Ich werde sehen, ob ich in XP auch etwas finden kann, das funktioniert. Karan vor 11 Jahren 0
Die Fehler sind dieselben wie beim ursprünglichen Beitrag, leeres Archiv, das mit Kauderwelschbuchstaben erstellt wurde, und "eine Datei nicht finden". Ich werde an Win7 x64 (Italienisch) versuchen, um zu sehen, ob es dort funktioniert. giuspen vor 11 Jahren 0