Autor: @SoNiceInfo · opublikowano 13.10.2026
Kompresujesz folder na Macu, wysyłasz go, a osoba korzystająca z Windows zamiast Résumé.pdf widzi nazwy w rodzaju R├⌐sum├⌐.pdf. Same pliki są w porządku; problem leży w tym, jak ZIP oznacza kodowanie znaków w nazwach plików. W tym poradniku na podstawie ZIP-ów, które naprawdę utworzyliśmy poleceniem „Kompresuj” w Finderze i poleceniem zip, wyjaśniamy, skąd bierze się ten problem, i pokazujemy trzy sposoby tworzenia na Macu ZIP-ów, które zachowują nazwy w Windows, a także sposób na pominięcie plików potrzebnych tylko na Macu, takich jak .DS_Store i __MACOSX.
Format ZIP nie narzuca kodowania znaków w nazwach plików. Zamiast tego nagłówek każdego pliku zawiera flagę UTF-8; jeśli jest ustawiona, nazwa jest zapisana w UTF-8. Jeśli flagi brak, system odbiorcy odczytuje nazwę po swojemu. Windows odczytuje nazwy bez flagi w swojej starszej stronie kodowej: CP437 w amerykańskiej wersji Windows, Shift_JIS (CP932) w japońskiej.
Mac zapisuje nazwy plików w UTF-8, ale nie ustawia flagi. Windows dekoduje więc bajty UTF-8 jako CP437 lub Shift_JIS, przez co Résumé.pdf zmienia się w R├⌐sum├⌐.pdf, a japońska nazwa, taka jak 見積書.pdf, w ciąg przypadkowych znaków.
Drugi problem dotyczy znaków diakrytycznych i japońskich znaków dźwięczności. Mac czasem zapisuje znak taki jak é jako dwa znaki: e oraz łączący akcent (ta postać nazywa się NFD). Jeśli trafi do ZIP-a w tej postaci, niektóre narzędzia w Windows pokazują akcent osobno. Połączenie ich w jeden znak (normalizacja NFC) zapobiega temu problemowi.
W macOS 27 skompresowaliśmy folder zawierający pliki z japońskimi nazwami i plik .DS_Store, a następnie zbadaliśmy powstałe ZIP-y. Polecenie „Kompresuj” w Finderze odtworzyliśmy za pomocą ditto -c -k --sequesterRsrc --keepParent, które według strony podręcznika ditto tworzy archiwum podobne do tego z polecenia „Kompresuj” w Finderze.
| Metoda | Flaga UTF-8 | .DS_Store | __MACOSX |
|---|---|---|---|
| „Kompresuj” w Finderze | Nieustawiona | Dodawany | Dodawany (gdy plik ma rozszerzone atrybuty) |
Polecenie zip (zip -r) | Nieustawiona (brak opcji, która by ją ustawiała) | Dodawany (wyklucz opcją -x) | Brak |
| zipfile w Pythonie | Ustawiona | Dodawany | Brak |
| ZipScope | Ustawiona (plus normalizacja NFC) | Brak | Brak |
Polecenie zip dołączone do macOS jest skompilowane bez opcji ustawiającej flagę UTF-8 (-UN); próba jej użycia kończy się błędem. Innymi słowy, same wbudowane narzędzia nie pozwalają utworzyć ZIP-a, który zachowa w Windows poprawne nazwy spoza ASCII.
Folder __MACOSX pojawia się, gdy plik ma rozszerzone atrybuty, na przykład gdy został pobrany z internetu lub oznaczony tagiem w Finderze. Zawiera pliki o nazwach zaczynających się od ._.
ZipScope to aplikacja na Maca do pakowania i rozpakowywania archiwów, stworzona przez autora tego poradnika, która tworzy ZIP-y otwierające się u użytkowników Windows bez zniekształconych nazw. Ustawia flagę UTF-8 dla nazw plików spoza ASCII i normalizuje je do postaci NFC. Pliki .DS_Store, __MACOSX i ._ są domyślnie pomijane.
Skompresuj z menu kontekstowego
Zaznacz pliki lub foldery w Finderze, kliknij je prawym przyciskiem i wybierz „Compress with ZipScope”. Możesz też upuścić je na ikonę na pasku menu.
Sprawdź ustawienia
Pomijanie .DS_Store i normalizacja NFC są włączone od początku. Sprawdź nazwę pliku i miejsce docelowe.
Kliknij „Create”
Powstanie ZIP, który zachowa nazwy w Windows, i zostanie pokazany w Finderze.

Tworzenie ZIP-ów bez hasła jest bezpłatne. Tworzenie archiwów ZIP i 7z chronionych hasłem jest częścią wersji Pro (jednorazowy zakup w aplikacji). ZipScope nigdy nie korzysta z sieci, więc Twoje pliki nigdy nie opuszczają Maca.
macOS 14 lub nowszy · Apple Silicon i Intel
Wbudowany moduł zipfile w Pythonie ustawia flagę UTF-8 dla nazw plików spoza ASCII. W Terminalu przejdź do folderu, w którym znajduje się to, co chcesz skompresować, i wykonaj:
cd ~/Desktop
python3 -m zipfile -c Documents.zip Documents/Przy pierwszym uruchomieniu python3 macOS może poprosić o zainstalowanie narzędzi programistycznych wiersza poleceń. Ta metoda ma kilka ograniczeń:
Aby pominąć .DS_Store, najpierw usuń te pliki z folderu źródłowego (to jedynie przywraca domyślne ustawienia widoku tego folderu w Finderze).
find Documents -name .DS_Store -deleteJeśli nazwy wszystkich plików i folderów zawierają tylko zwykłe litery i cyfry ASCII (na przykład bez polskich znaków), nada się każde narzędzie, a problem kodowania w ogóle nie wystąpi. To niezawodny sposób, ale zmiana nazw wielu plików zajmuje czas, a nazwy mogą być mniej zrozumiałe dla odbiorcy.
„Kompresuj” w Finderze i tak dodaje .DS_Store i __MACOSX, więc jeśli ma to dla ciebie znaczenie, użyj polecenia zip i wyklucz .DS_Store:
cd ~/Desktop
zip -r Documents.zip Documents -x "*.DS_Store"-x "*.DS_Store" pomija pliki .DS_Store. Polecenie zip nie tworzy folderu __MACOSX.
.DS_Store to plik, w którym Finder zapisuje ustawienia widoku folderu. __MACOSX to folder, który polecenie „Kompresuj” w Finderze tworzy, aby zachować rozszerzone atrybuty. Oba są na Macu ukryte, ale w Windows widać je jako zwykłe pliki, dlatego odbiorcy pytają o dziwne dodatkowe pliki.
-x "*.DS_Store" wyklucza .DS_Store. Folder __MACOSX nie powstaje.Problem występuje też w drugą stronę. Windows zapisuje nazwy plików w ZIP-ie w starszej stronie kodowej bez flagi UTF-8, więc ZIP z japońskiego Windows przechowuje nazwy w Shift_JIS. W macOS 27 rozpakowaliśmy taki ZIP wbudowanym narzędziem (ditto). Gdy Mac był ustawiony na język japoński, nazwy były poprawne; przy angielskim kodowaniu systemu pojawiły się jako å©êœèë, a polecenie unzip zatrzymało się z błędem. To, czy wbudowane narzędzie poradzi sobie poprawnie, zależy więc od języka Twojego Maca.
ZipScope automatycznie wykrywa nazwy w Shift_JIS (CP932) niezależnie od języka Maca i wyświetla je poprawnie po japońsku. Jeśli wykrywanie zawiedzie, przełącz ręcznie między CP932, UTF-8, EUC-JP, GBK, EUC-KR i CP437. W przypadku ZIP-ów z hasłem zapisanym po japońsku aplikacja próbuje zarówno UTF-8, jak i CP932.


To znacznik w nagłówku każdego pliku, który mówi: „ta nazwa pliku jest zapisana w UTF-8”. Specyfikacja ZIP nazywa go bitem 11 pola general purpose flag, znanym też jako Language encoding flag (EFS). Gdy flaga jest ustawiona, Windows odczytuje nazwę jako UTF-8. Gdy jej brak, Windows odczytuje nazwę w starszej stronie kodowej (CP437 w amerykańskiej wersji Windows, Shift_JIS w japońskiej), więc nazwy z Maca są zniekształcone.
Odbiorca może używać starego programu do rozpakowywania, który ignoruje flagę UTF-8. Nowsze wersje Windows poprawnie odczytują ZIP-y z flagą UTF-8 wbudowanym narzędziem (Eksploratorem plików), więc poproś o otwarcie archiwum właśnie w nim albo zmień nazwy plików na zwykłe ASCII i spakuj je ponownie.
Program do rozpakowywania, który potrafi ponownie odczytać nazwy jako UTF-8, może wyświetlić je poprawnie. Mimo to utworzenie ZIP-a z flagą UTF-8 po Twojej stronie jest pewniejsze i oszczędza odbiorcy kłopotu.
.DS_Store to plik, w którym Finder przechowuje ustawienia widoku folderu (położenie ikon, tryb widoku itp.). Jego usunięcie nie wpływa na dokumenty, a Finder w razie potrzeby utworzy go ponownie. Nie musisz go usuwać tylko po to, by nie trafił do ZIP-a; zobacz Pomijanie .DS_Store i __MACOSX.
Tak. ZipScope Pro (jednorazowy zakup) tworzy ZIP-y chronione hasłem, które mają flagę UTF-8 i otwierają się wbudowanym narzędziem Windows. Polecenie zip potrafi dodać hasło, ale nie ustawi flagi UTF-8. Zobacz Jak utworzyć ZIP z hasłem na Macu.
ZIP-y utworzone na Macu mają w Windows zniekształcone nazwy, bo Mac zapisuje nazwy w UTF-8 bez flagi, która by o tym informowała. „Kompresuj” w Finderze i polecenie zip nie potrafią ustawić tej flagi, więc aby zachować nazwy spoza ASCII, użyj aplikacji ustawiającej flagę UTF-8, takiej jak ZipScope, albo modułu zipfile w Pythonie. Pominięcie .DS_Store i __MACOSX także oszczędzi odbiorcy niepotrzebnych wątpliwości.