• Home
  • Articles
  • Why ZIPs Made on a Mac Show Garbled File Names on Windows (3 Fixes)

Why ZIPs Made on a Mac Show Garbled File Names on Windows (3 Fixes)

Published by @SoNiceInfo at 10/13/2026


You zip a folder on your Mac, send it, and the person on Windows sees names like R├⌐sum├⌐.pdf instead of Résumé.pdf. The files themselves are fine; the problem is how the ZIP labels the text encoding of its file names. This guide explains why it happens, based on ZIPs we actually created with Finder's Compress and the zip command, and shows three ways to make ZIPs on a Mac that keep their names on Windows, plus how to leave out Mac-only files such as .DS_Store and __MACOSX.

Why the names get garbled

The ZIP format doesn't fix the text encoding of file names. Instead, each file's header has a UTF-8 flag; when it is set, the name is UTF-8. When the flag is missing, the receiving system reads the name however it likes. Windows reads unflagged names in its legacy code page: CP437 on US English Windows, Shift_JIS (CP932) on Japanese Windows.

A Mac writes file names in UTF-8 but doesn't set the flag. So Windows decodes UTF-8 bytes as CP437 or Shift_JIS, and Résumé.pdf becomes R├⌐sum├⌐.pdf while a Japanese name like 見積書.pdf turns into a string of unrelated characters.

There is a second issue with accents and voiced marks. A Mac sometimes stores a character like é as two characters, e plus a combining accent (a form called NFD). Put into a ZIP as is, some tools on Windows show the accent separately. Combining them into one character (NFC normalization) avoids this.

What the built-in tools produce

On macOS 27, we compressed a folder containing Japanese-named files and a .DS_Store file, then inspected the ZIPs. Finder's Compress was reproduced with ditto -c -k --sequesterRsrc --keepParent, which the ditto man page says creates an archive similar to Finder's Compress.

MethodUTF-8 flag.DS_Store__MACOSX
Finder's CompressNot setIncludedIncluded (when a file has extended attributes)
zip command (zip -r)Not set (no option to set it)Included (exclude with -x)Not included
Python's zipfileSetIncludedNot included
ZipScopeSet (plus NFC normalization)Not includedNot included

The zip command that ships with macOS is built without the option that sets the UTF-8 flag (-UN); using it gives an error. In other words, the built-in tools alone can't make a ZIP that keeps non-ASCII names intact on Windows.

The __MACOSX folder appears when a file carries extended attributes, such as files you downloaded or tagged in Finder. It holds files whose names start with ._.

RecommendedMethod 1: compress with an app (ZipScope)

ZipScope is a Mac app for unzipping and zipping, made by the author of this guide, that creates ZIPs Windows users can open without garbled names. It sets the UTF-8 flag on non-ASCII file names and normalizes them to NFC. .DS_Store, __MACOSX, and ._ files are left out by default.

1

Right-click to compress

Select files or folders in Finder, right-click, and choose Compress with ZipScope. Or drop them on the menu bar icon.

2

Check the settings

Leaving out .DS_Store and NFC normalization are on from the start. Check the file name and destination.

3

Click Create

You get a ZIP that keeps its names on Windows, shown in Finder.

ZipScope's ZIP creation window, with the Windows options turned on by default

Creating ZIPs without a password is free. Creating password-protected ZIP and 7z archives is part of Pro (a one-time in-app purchase). ZipScope never uses the network, so your files never leave your Mac.

See ZipScope →

macOS 14+ · Apple Silicon & Intel

For Terminal usersMethod 2: compress with Python's zipfile

Python's built-in zipfile module sets the UTF-8 flag on non-ASCII file names. In Terminal, go to the folder that contains what you want to compress and run:

cd ~/Desktop
python3 -m zipfile -c Documents.zip Documents/

The first time you run python3, macOS may ask you to install the command line developer tools. This method has a few limits:

  • .DS_Store files are included (there is no option to exclude them).
  • It doesn't normalize names to NFC, so decomposed (NFD) names go in as they are.
  • You need to open Terminal every time.

To keep .DS_Store out, delete it from the source folder first (this only resets Finder's view settings for the folder).

find Documents -name .DS_Store -delete

No installMethod 3: rename files to ASCII first

If every file and folder name uses only plain ASCII letters and digits, any tool will do and encoding never comes up. It works reliably, but renaming many files takes time, and the names may mean less to the recipient.

Finder's Compress still adds .DS_Store and __MACOSX, so if that matters, use the zip command and exclude .DS_Store:

cd ~/Desktop
zip -r Documents.zip Documents -x "*.DS_Store"

-x "*.DS_Store" leaves out .DS_Store files. The zip command doesn't create a __MACOSX folder.

Leaving out .DS_Store and __MACOSX

.DS_Store is where Finder saves a folder's view settings. __MACOSX is a folder Finder's Compress creates to keep extended attributes. Both are hidden on a Mac but show up as regular files on Windows, which is why recipients ask about strange extra files.

  • Finder's Compress ─ No setting to leave them out.
  • zip command ─ -x "*.DS_Store" excludes .DS_Store. No __MACOSX folder is created.
  • ZipScope ─ Leaves out .DS_Store, __MACOSX, and ._ files by default. It also skips them when extracting ZIPs made on a Mac (configurable in Settings).

When ZIPs from Windows look garbled on a Mac

The problem also runs the other way. Windows writes ZIP file names in its legacy code page without the UTF-8 flag, so a ZIP from Japanese Windows stores its names in Shift_JIS. On macOS 27, we extracted such a ZIP with the built-in tool (ditto). With the Mac set to Japanese, the names came out correctly; with an English system encoding they came out as å©êœèë, and the unzip command stopped with an error. So whether the built-in tool gets it right depends on your Mac's language.

ZipScope detects Shift_JIS (CP932) names automatically, whatever your Mac's language, and shows them in proper Japanese. If detection is wrong, switch between CP932, UTF-8, EUC-JP, GBK, EUC-KR, and CP437 by hand. For ZIPs with a Japanese password, it tries both UTF-8 and CP932.

A file list with garbled names, read in the wrong encoding
The same file list in proper Japanese after ZipScope's automatic detection

Which method is right for you

  • You exchange ZIPs with Windows users for work ─ ZipScope. A right-click gives you ZIPs without garbled names or .DS_Store, and it also handles garbled ZIPs from Windows.
  • You send ZIPs now and then and don't mind Terminal ─ Python's zipfile. Delete .DS_Store first.
  • Only a few files, and renaming them is fine ─ Rename to ASCII.

FAQ

Q. What is the UTF-8 flag in a ZIP file?

It is a marker in each file's header that says "this file name is written in UTF-8". The ZIP specification calls it bit 11 of the general purpose flag, also known as the Language encoding flag (EFS). When the flag is set, Windows reads the name as UTF-8. When it is missing, Windows reads the name in its legacy code page (CP437 on US English Windows, Shift_JIS on Japanese Windows), so names from a Mac come out garbled.

Q. I sent a Windows-safe ZIP, but the recipient still sees garbled names.

They may be using an old unzip tool that ignores the UTF-8 flag. Recent versions of Windows read UTF-8-flagged ZIPs correctly with the built-in tool (File Explorer), so ask them to open it there, or rename the files to plain ASCII and zip them again.

Q. Can the recipient fix the names on Windows?

An unzip tool that can reread names as UTF-8 may show them correctly. Still, making a UTF-8-flagged ZIP on your side is more reliable and saves the recipient the trouble.

Q. Is it safe to delete .DS_Store files?

.DS_Store is where Finder keeps a folder's view settings (icon positions, view mode, and so on). Deleting it does not affect your documents, and Finder recreates it when needed. You don't have to delete it just to keep it out of a ZIP; see leaving out .DS_Store and __MACOSX.

Q. Can a password-protected ZIP keep its file names intact on Windows too?

Yes. ZipScope Pro (one-time purchase) creates password-protected ZIPs that carry the UTF-8 flag and open with Windows' built-in tool. The zip command can add a password but cannot set the UTF-8 flag. See How to create a password-protected ZIP on a Mac.

Summary

ZIPs made on a Mac garble on Windows because the Mac writes names in UTF-8 without the flag that says so. Finder's Compress and the zip command can't set that flag, so to keep non-ASCII names, use an app that sets the UTF-8 flag, such as ZipScope, or Python's zipfile. Leaving out .DS_Store and __MACOSX spares the recipient some confusion too.