Błąd podczas kompresowania plików ze znakami Unicode w nazwach z „wysyłanie do> skompresowanego (skompresowanego) folderu” w Win7

12

Kiedy próbuję skompresować pliki zawierające w nazwach znaki Unicode, takie jak © lub ™, pojawia się następujący błąd:

[Tytuł okna] Skompresowane (skompresowane) błędy folderów

[Treść] „C: \ Asd ™ .txt” nie może być skompresowany, ponieważ zawiera znaki, których nie można użyć w folderze skompresowanym, takim jak ™. Powinieneś zmienić nazwę tego pliku lub katalogu.

[DOBRZE]

Stało się to problemem tylko podczas ponownej instalacji systemu Windows 7. Prawdopodobnie miałem trochę zasobów niezbędnych do tego, aby błąd został rozwiązany automatycznie, ale teraz jest prawie czysta instalacja i nie mogę skompresować plików. Jak to naprawić?

UPD: Minęło trochę czasu, odkąd opublikowałem to pytanie, zainstalowałem niektóre z moich zwykłych aplikacji, ale problem nadal istnieje i nie jestem pewien, czy można go rozwiązać, instalując wcześniej określoną aplikację.


Wbudowane w kompresowanie systemu Windows 10 może nie mieć tego problemu, jak podano w komentarzu do tego pytania .

użytkownik1306322
źródło
3
Bez obrazy, ale co jest złego w stosowaniu odpowiedniego programu do kompresji, takiego jak WinRAR lub 7-Zip (bezpłatny)?
Karan
3
Podobało mi się standardowe zipowanie systemu Windows, ponieważ są to tylko dwa kliknięcia (z pauzą) i to od czystej instalacji.
user1306322,
Właśnie się dowiedziałem, że kompresowanie za pomocą „wysyłania do” systemu Windows działa tak samo jak „najlepsze” kompresowanie Winrara, ale o wiele szybciej.
user1306322,
Chciałbym dodać, że po tych wszystkich niedogodnościach postanowiłem zacząć używać 7-zip do szybkiej archiwizacji. Może to kilka kliknięć więcej niż wcześniej, ale zdecydowanie warto pozbyć się tej frustracji.
user1306322,
1
Wygląda na to, że 10 wbudowany zamek obsługuje teraz nazwy plików Unicode.
Imre Pühvel,

Odpowiedzi:

17

Jeśli znaki są obrażając z językiem innym niż angielski, ale jeden obsługuje Microsoft, można zainstalować odpowiedni pakiet MUI (Multilingual User Interface) pakiet językowy z witryny Windows Update lub odpowiedni LIP (Language Interface Pack) z tutaj jako ewentualnej poprawki.

Oprócz powyższego może być konieczna zmiana ustawień regionalnych systemu .

Ustawienia regionalne systemu określają domyślny zestaw znaków (litery, symbole i cyfry) oraz czcionkę używaną do wprowadzania i wyświetlania informacji w programach, które nie używają Unicode. Umożliwia to uruchamianie programów innych niż Unicode na komputerze w określonym języku. Może być konieczna zmiana domyślnych ustawień regionalnych systemu podczas instalowania dodatkowych języków wyświetlania na komputerze. Wybór innego języka dla ustawień regionalnych systemu nie wpływa na język w menu i oknach dialogowych dla Windows lub innych programów korzystających z Unicode.

Aby to zrobić:

  1. Wpisz „region” w polu wyszukiwania w menu Start (bez cudzysłowów)

  2. Otwórz aplet Panel sterowania regionem i językiem

  3. Kliknij kartę Administracja , a następnie w obszarze Język dla programów nieobsługujących kodu Unicode kliknij Zmień ustawienia regionalne systemu . Jeśli zostanie wyświetlony monit o hasło administratora lub potwierdzenie, wpisz hasło lub potwierdź.

  4. Wybierz język, a następnie kliknij przycisk OK.

  5. Jeśli pojawi się monit o ponowne uruchomienie komputera, kliknij Uruchom ponownie teraz, aby to zrobić.

    Win7 Zmień ustawienia regionalne systemu


Jednakże, jeśli znaki są obrażając coś , jak wspomniano powyżej, nie wierzę, jest jakaś oficjalna poprawka Microsoft dla tego Zipfldr.dll ograniczeniem , że istnieje tak długo, jak system Windows miały tę funkcję (więc jeśli naprawdę zrobił to naprawić wcześniej , prawdopodobnie zainstalowałeś jakiś komponent strony trzeciej). Z Wikipedii :

Wersje systemu Microsoft Windows zawierają obsługę kompresji zip w Eksploratorze od wersji Plus! pakiet został wydany dla systemu Windows 98. Microsoft nazywa tę funkcję „folderami skompresowanymi”. Nie wszystkie funkcje zip są obsługiwane przez funkcję folderów skompresowanych w systemie Windows. Na przykład szyfrowanie AES, dzielone lub łączone archiwa oraz kodowanie pozycji Unicode nie są znane z możliwości odczytu lub zapisu przez funkcję Foldery skompresowane w systemie Windows XP lub nowszych wersjach.

Format pliku ZIP brakowało wsparcia Unicde przez długi czas, a to rozszerzenie dodano tylko 6 lat temu w 2006 roku zgodnie Dodatek D - język kodowania (EFS) w ZIP Format pliku Specyfikacja :

D.1 Format ZIP historycznie obsługiwał tylko oryginalny zestaw kodowania znaków IBM PC, zwany zwykle kodem IBM Page 437. Ogranicza to przechowywanie znaków nazwy pliku tylko do tych z oryginalnego zakresu wartości MS-DOS i nie obsługuje poprawnie nazwy plików w innych kodowaniach znaków lub językach. Aby rozwiązać to ograniczenie, niniejsza specyfikacja będzie obsługiwać następującą zmianę. [ Przeczytaj resztę dokumentu. ]

Od tego czasu oczywiście wszystkie główne archiwizatory systemu Windows implementujące ten format zostały zaktualizowane o obsługę Unicode, począwszy od WinZip w 2008 roku. Niestety, Microsoft z jakiegoś dziwnego powodu licencjonował bibliotekę innej firmy dla jej funkcji folderów skompresowanych (chociaż nie jest to strasznie trudne do kodowania wsparcie ZIP), i oczywiście ta biblioteka poprzedza dodanie Unicode do formatu pliku ZIP. Ponadto, jako wyraźny znak tego, jak bardzo zależy na tej funkcji, Microsoft nie zaktualizował kodu, aby naprawić ten błąd do daty (najwyraźniej nawet nowa klasa System.IO.ZipArchive w najnowszej wersji .Net Framework tj. 4.5 początkowo nie wyszło poprawnie, ale błąd został już naprawiony).Sądzę, że oczekują od wszystkich, aby zainstalowali jeden z wielu dostępnych w pełni funkcjonalnych archiwizatorów innych firm, co właśnie poleciłem wam również powyżej.

Ohydne szczegóły tego szczególnego braku obsługi Unicode w systemie Windows można przeczytać w następującej serii postów na blogu autorstwa Michaela Kaplana Microsoftu :


PS „Właśnie dowiedziałem się, że kompresowanie za pomocą„ wysyłania do ”systemu Windows działa tak dobrze, jak„ najlepsze ”kompresowanie Winrara, ale o wiele szybciej.” - Właśnie to przetestowałem wiele razy. Poza dodatkowym czasem potrzebnym na otwarcie WinRAR Dodaj do archiwumw oknie dialogowym wybierz ZIP jako format archiwum i naciśnij OK, faktyczny czas kompresji był mniej więcej taki sam dla obu, a WinRAR ogólnie zajął mniej czasu (choć różnice były znikome). Jeśli zauważyłeś ogromną różnicę, mogło tak być tylko wtedy, gdy najpierw przetestowałeś WinRAR na zestawie plików, a następnie natychmiast skompresowałeś te same pliki za pomocą folderów skompresowanych. Oczywiście drugi raz w systemie Windows dane z pamięci podręcznej były już przechowywane w pamięci podręcznej, więc proces ten zajmował ułamek czasu, jaki robił na początku. Zrób to w odwrotnej kolejności na zestawie plików, których nie dotknąłeś wcześniej podczas bieżącej sesji Windows, i założę się, że wynik zostanie odwrócony. :)

Jeśli chodzi o końcowy rozmiar skompresowany, w zależności od danych / kombinacji zarchiwizowanych formatów plików, zauważyłem, że jedno z tych dwóch robi lepszą robotę (chociaż znowu różnice były nieistotne). Oczywiście, 7z lub Rar (lub nawet programie WinZip Zipx) formaty są znacznie lepsze w tym zakresie i będzie bić zwykły ol”ZIP prawie każdy dzień (tj ZIP metodą tradycyjną / starszego deflate algorytm zamiast PPMd i tym podobne).

Karan
źródło
1

Mam ten sam problem. Użyj menedżera 7-zip i skompresuj pliki, a problem zostanie rozwiązany. :)

Jaivin
źródło
1
Niestety nie takiego rozwiązania szukałem. Obejmuje to instalowanie oprogramowania innych firm, czego nie można zrobić na żadnym komputerze, tak jak w moim przypadku, gdy zadałem to pytanie.
user1306322