Kéménybe, korommal #2

The UnZip package assumes that filenames stored in the ZIP archives created on non-Unix systems are encoded in CP850, and that they should be converted to ISO-8859-1 when writing files onto the filesystem. Such assumptions are not always valid. In fact, inside the ZIP archive, filenames are encoded in the DOS codepage that is in use in the relevant country, and the filenames on disk should be in the locale encoding. In MS Windows, the OemToChar() C function (from User32.DLL) does the correct conversion (which is indeed the conversion from CP850 to a superset of ISO-8859-1 if MS Windows is set up to use the US English language), but there is no equivalent in Linux.

Hozzászólások

Én ugyan a magyarázat ellenére se értem, hogy ez a két konverzió hogyan segít, de azért megjegyzem.

Beégetett kódolással tárolja a fájl neveket a ZIP, ez a probléma. Bizonyos orosz verziókban már patch-elik régóta egyébként. A fenti convmv csak a már kicsomagolt fájlok neveinek karaktereit alakítja át másik kódolásba.

Persze sajnos ettől még nem az eredeti problémát oldja meg, és továbbra is függeni fog a művelet attól, hogy milyen rendszeren készült a zip milyen karakter kódolással, és hogy milyen karakter kódolású rendszeren akarjuk kicsomagolni.

a hiba annál van elásva, aki ékezetet használ fájlnévben.