Ismerős a jelenet? Kapsz egy zip fájlt Windows-os környezetből, kibontod Macen, és a szépen elnevezett mappák helyett ilyesmit látsz: Megh˘v˘, El?terjeszt?s, k?lts?gvet?s. A tartalom megvan, de a neveket alig lehet kibogozni.
Nálam ez elég sűrűn előfordul. Nem a te hibád, és nem is a küldő hibája. Ez egy klasszikus kódolási ütközés.
Mi okozza a problémát?
A Windows régi rendszerek óta egy CP852 nevű karakterkódolást használ a zip fájlok neveiben. A Mac viszont mindent UTF-8-ként vár. Amikor a két rendszer találkozik, a Mac nem tudja értelmezni a magyar betűk bájtjait, és furcsa karakterekkel helyettesíti őket.
A megoldás nem a fájlok átnevezése egyesével – arra nincs idő. A megoldás egy egyszer beállított, aztán örökké működő Automator gyorsművelet.
Mit csinál a gyorsművelet?
Az Automator a macOS beépített eszköze, amivel saját automatizált műveleteket készíthetsz. A mi esetünkben egy olyan „Magyar ZIP kibontó” gyorsműveletet hozunk létre, ami:
- jobb klikk → Gyorsműveletek (Quick Actions) menüből indítható bármely zip fájlon,
- kibontja a tartalmat ugyanabba a mappába, ahol a zip van,
- és automatikusan javítja az összes fájlnevet CP852-ről UTF-8-ra.
Telepítés után egyszer sem kell többé kézzel átnevezgetni.
Hogyan állítsd be?
1. Nyisd meg az Automatort (Alkalmazásokból vagy Spotlight: ⌘ Space → „Automator”).
2. Új dokumentum: Új dokumentum (New Document) → Gyorsművelet (Quick Action).
3. Beállítások felül:
- „Workflow receives current” →
fájlok vagy mappák / files or folders - „in” →
Finder
4. Add hozzá a szkriptet:
- A bal oldali keresőbe írd: „Rendszerhéj parancsfájl futtatása” Ennek a szkriptnek lehet ettől eltérő neve is, de valami ilyesmi lesz.

- Húzd be a munkafelületre
- Shell:
/bin/bash| Pass input:argumentumonként / as arguments - Illeszd be a lenti szkriptet
5. Mentsd el ⌘ S → Név: Win ZIP to macOS kibontó
Ennyi. Mostantól minden zip fájlon elérhető a jobb klikk menüből.
A szkript
bash
#!/bin/bash
# Magyar ékezetes zip kibontó – CP852 → UTF-8
# Automator Quick Action szkript
for ZIP_PATH in "$@"; do
python3 - "$ZIP_PATH" <<'PYTHON'
import sys, os, zipfile
zip_path = sys.argv[1]
dest_dir = os.path.dirname(zip_path)
zip_name = os.path.splitext(os.path.basename(zip_path))[0]
final_dir = os.path.join(dest_dir, zip_name)
def decode_name(info):
if info.flag_bits & 0x800:
return info.filename
raw = info.filename.encode('cp437')
for enc in ('cp852', 'cp1250', 'latin-1'):
try:
return raw.decode(enc)
except Exception:
continue
return info.filename
os.makedirs(final_dir, exist_ok=True)
with zipfile.ZipFile(zip_path, 'r') as zf:
for info in zf.infolist():
decoded_name = decode_name(info)
target_path = os.path.join(final_dir, decoded_name)
if info.is_dir():
os.makedirs(target_path, exist_ok=True)
else:
os.makedirs(os.path.dirname(target_path), exist_ok=True)
with zf.open(info) as src, open(target_path, 'wb') as dst:
dst.write(src.read())
PYTHON
FINAL_DIR="$(dirname "$ZIP_PATH")/$(basename "$ZIP_PATH" .zip)"
osascript -e "display dialog \"Kész! Kibontva ide:\n$FINAL_DIR\" buttons {\"OK\"} default button 1"
done
Összefoglalás
| Probléma | Megoldás |
|---|---|
El?terjeszt?s jelenik meg | CP852 kódolásütközés |
| Egyesével átnevezgetés | Automator gyorsművelet |
| Windows-os környezetből küldött zip fájlnál újra | Egyszer beállítod, örökre működik |
Ha a gyorsművelet valamiért eltűnne a menüből, egyszerűen hozd létre újra a fenti lépésekkel – az egész beállítás 5 percet vesz igénybe.
Megoldotta a problémádat? Oszd meg ezt a cikket kollégáiddal, akik szintén Windows–Mac vegyes környezetben dolgoznak!
Comments