ZIP Mac : accents cassés sous Windows, la solution
Si un ZIP Mac avec accents s'ouvre sous Windows avec des noms comme Contrat_François.pdf au lieu de Contrat_François.pdf, l'archive a été décompressée avec le mauvais encodage de texte ; la décompresser à nouveau avec 7-Zip ou un autre outil qui comprend l'UTF-8 règle le problème dans la plupart des cas. Si les noms paraissent corrects mais que la recherche Windows ne les trouve pas, qu'un site refuse l'envoi, ou que vous vous retrouvez avec deux fichiers Zoë.jpg côte à côte, les accents sont stockés en deux caractères (un « e » suivi d'un accent flottant) et doivent être normalisés. Les deux problèmes viennent de la même archive, mais ils ne se corrigent pas de la même façon. La première étape consiste donc à les distinguer.
Pourquoi un ZIP Mac avec accents casse sous Windows
Un fichier ZIP n'embarque pas de règle universelle pour l'encodage des noms de fichiers. Chaque logiciel qui crée une archive décide comment écrire les noms, et chaque logiciel qui l'ouvre décide comment les lire. Mac et Windows ont fait des choix différents pendant des années, et les lettres accentuées du français se trouvent exactement sur la ligne de faille.
Cause 1 : des caractères parasites dus à une mauvaise page de code
Quand vous faites un clic droit sur un dossier dans le Finder et choisissez Compresser, macOS écrit les noms de fichiers dans le ZIP en UTF-8. Les anciennes versions de l'Explorateur Windows, ainsi que certains outils tiers, partaient du principe que les noms d'un ZIP utilisaient la page de code Windows héritée. Lire des octets UTF-8 comme s'il s'agissait de Windows-1252 transforme é en é, ç en ç, ë en ë et è en è. C'est pour cela que François devient François et Élodie devient Élodie.
C'est un pur problème d'affichage et d'extraction. Les octets dans l'archive sont bons ; c'est l'outil qui les a décompressés qui s'est trompé.
Cause 2 : des accents décomposés (NFD) qui semblent corrects mais ne le sont pas
Même quand l'extraction se passe parfaitement, un second problème, plus discret, peut subsister. macOS a tendance à enregistrer une lettre accentuée sous forme de deux points de code Unicode : la lettre de base, puis un accent combinant séparé. On parle de forme de normalisation D (NFD). Windows, les navigateurs web et la plupart des serveurs attendent au contraire le caractère précomposé unique, la forme de normalisation C (NFC).
Windows accepte sans broncher de créer un fichier dont le nom contient e + accent aigu combinant. À l'écran, cela s'affiche comme é, donc rien ne semble anormal. Mais pour le système de fichiers, c'est une chaîne différente du é que vous tapez sur un clavier AZERTY. Les conséquences apparaissent plus tard :
- La recherche Windows et le champ de recherche de l'Explorateur ne trouvent pas
Françoisquand vous le tapez. - Un script ou une formule de tableur qui fait correspondre des noms de fichiers échoue précisément sur les fichiers accentués.
- Copier le dossier extrait à côté d'un dossier existant produit des doublons apparents : deux
Devis_été.xlsxavec des tailles et des dates différentes. - Un formulaire web ou un portail documentaire refuse l'envoi, ou enregistre le nom avec d'étranges séquences
%CC%81dans l'URL.
Si vos symptômes correspondent à cette liste, une nouvelle extraction ne changera rien. Les noms doivent être convertis de NFD vers NFC après l'extraction.
Vérification rapide : quel problème avez-vous ?
La liste des fichiers suffit généralement à trancher.
- Des caractères parasites sont visibles (
é,ç,è,’) : c'est le problème de page de code, cause 1. Passez à la section suivante. - Les noms semblent normaux mais se comportent bizarrement : probablement du NFD, cause 2. Confirmez-le dans PowerShell :
$name = (Get-Item -LiteralPath "C:\Users\vous\Downloads\extrait\Contrat_François.pdf").Name
$name.Length
$name.IsNormalized([Text.NormalizationForm]::FormC)
Collez le chemin d'un des fichiers suspects. Si Length dépasse d'une unité le nombre de caractères que vous voyez (Contrat_François.pdf compte 20 caractères, mais en NFD on obtient 21) et que IsNormalized renvoie False, le nom est décomposé.
Une vérification plus rapide si vous préférez la souris : appuyez sur F2 sur le fichier dans l'Explorateur, placez le curseur juste après le ç, puis appuyez une fois sur Retour arrière. Si seule la cédille disparaît et qu'il reste un simple c, l'accent était un caractère séparé.
Corriger les caractères parasites : extraire le ZIP Mac avec un outil compatible UTF-8
Supprimez le dossier extrait avec les mauvais noms pour éviter de vous retrouver avec deux copies, puis décompressez à nouveau le .zip d'origine avec un outil qui lit les noms en UTF-8.
7-Zip (gratuit, Windows)
- Installez 7-Zip depuis son site officiel si vous ne l'avez pas déjà.
- Faites un clic droit sur le ZIP dans l'Explorateur et choisissez 7-Zip › Extraire ici (sous Windows 11, il faut parfois d'abord cliquer sur Afficher plus d'options).
- Vérifiez les noms extraits.
Françoisdoit maintenant se lireFrançois.
Extraction intégrée à Windows 10 et 11
Les versions récentes de Windows gèrent bien mieux les noms UTF-8 dans les ZIP que les anciennes. Si un collègue avec une machine à jour extrait la même archive sans caractères parasites, le problème vient de votre outil d'extraction, pas du fichier. Essayez Extraire tout depuis l'Explorateur, ou dans PowerShell :
Expand-Archive -LiteralPath "C:\chemin\vers\archive.zip" -DestinationPath "C:\chemin\vers\sortie"
Si 7-Zip affiche aussi des caractères parasites
Il arrive que l'expéditeur ait utilisé sur Mac un archiveur ancien ou inhabituel qui a écrit les noms en Mac OS Roman ou dans un autre encodage hérité. 7-Zip et WinRAR permettent de choisir une page de code à l'ouverture d'une archive ; passez en revue les options Europe occidentale jusqu'à ce que les noms se lisent correctement. Si rien ne fonctionne, demandez à l'expéditeur de recréer l'archive avec la commande Compresser du Finder ou avec zip -r dans le Terminal, qui écrivent toutes deux en UTF-8.
Une fois les noms affichés correctement, refaites le test NFD de la section précédente. Il est courant de corriger la cause 1 et de découvrir la cause 2 juste en dessous.
Corriger les accents décomposés après l'extraction
Cette étape convertit e + accent combinant en un seul é, et fait de même pour chaque autre lettre accentuée ou spéciale du dossier : ç, è, ê, ë, ï, ô, ù, œ compris. Deux approches pratiques existent.
Option A : renommage PowerShell (sans logiciel supplémentaire)
Ce script renomme chaque fichier et dossier sous un chemin donné vers sa forme NFC. Exécutez-le d'abord sur une copie si le dossier est important.
$root = "C:\chemin\vers\extrait"
Get-ChildItem -LiteralPath $root -Recurse |
Sort-Object { $_.FullName.Length } -Descending |
ForEach-Object {
$fixed = $_.Name.Normalize([Text.NormalizationForm]::FormC)
if ($fixed -ne $_.Name) {
$target = Join-Path $_.Directory.FullName $fixed
if (Test-Path -LiteralPath $target) {
Write-Warning "Ignoré (le nom existe déjà) : $($_.FullName)"
} else {
Rename-Item -LiteralPath $_.FullName -NewName $fixed
}
}
}
Quelques précisions sur son fonctionnement :
- Les éléments les plus profonds sont renommés en premier, pour que le renommage d'un dossier n'invalide pas les chemins des fichiers qu'il contient.
- Si un fichier correctement nommé existe déjà (la situation des « deux
Zoë.jpg»), le script l'ignore au lieu de l'écraser, et vous indique lesquels fusionner à la main. -LiteralPathest important ; sans lui, des crochets dans les noms de fichiers peuvent être interprétés comme des caractères génériques.
Option B : réparer le ZIP lui-même avant de l'extraire
Si vous préférez éviter les scripts, ou si vous devez transmettre une archive propre à quelqu'un d'autre, l'outil de restauration ZIP de FilenameFixer prend le ZIP Mac d'origine (jusqu'à 200 Mo), réécrit les noms décomposés qu'il contient en NFC et vous propose une archive corrigée à télécharger. Le traitement se fait dans votre navigateur ; l'archive n'est pas envoyée sur un serveur, ce qui compte quand le ZIP contient des contrats clients ou des dossiers du personnel. L'outil est gratuit, et la même application web traite aussi des fichiers isolés par glisser-déposer si vous avez déjà extrait le dossier.
Les deux approches donnent le même résultat : des noms que la recherche Windows, les scripts et les formulaires web traitent comme des é, ç, ë, ü ordinaires. La correction ne se limite pas aux accents latins ; la même conversion répare les noms coréens qui arrivent avec les lettres séparées et les kana japonais dont le dakuten s'est détaché, que vous rencontrerez dans des archives envoyées par des collègues coréens ou japonais.
Éviter le problème sur la prochaine archive
L'essentiel peut être évité à la source, mais pas tout.
- Demandez à l'expéditeur de compresser depuis le Finder ou avec
zip -rdans le Terminal. Les deux écrivent des noms en UTF-8, ce qui supprime le risque de caractères parasites sur les versions actuelles de Windows. Aucun des deux ne normalise en NFC, donc le second problème peut toujours survenir. - Évitez les caractères accentués dans les noms de fichiers destinés à changer de plateforme quand c'est raisonnable.
contrat_francois.pdfsurvit à tout. C'est un contournement, pas une correction, et ce n'est pas envisageable quand les accents font partie du nom d'une personne ou de l'intitulé d'un document juridique. - Corrigez les noms au moment de l'envoi si votre vrai souci est un portail web qui refuse les fichiers venus d'un Mac. L'extension Chrome FilenameFixer convertit automatiquement les noms de fichiers en NFC quand vous les envoyez sur un site, de sorte que le portail reçoit
Françoisavec unçen un seul caractère. - Pour les développeurs : normalisez les noms de fichiers en NFC côté serveur lors de la réception d'envois, ainsi que dans les scripts de build ou de synchronisation qui comparent des chemins entre des copies macOS et Windows.
unicodedata.normalize("NFC", name)en Python etString.Normalize()en .NET sont les outils habituels. Git proposecore.precomposeunicodepour traiter le même problème dans les dépôts clonés sur Mac.
Une limite à connaître : si un utilisateur Windows a déjà renommé, modifié et enregistré des fichiers aux noms décomposés pendant des mois, les convertir ensuite peut entrer en collision avec des copies correctement nommées des mêmes documents. Le script PowerShell ci-dessus comme l'outil ZIP laissent les originaux intacts dans ce cas, mais fusionner les deux versions reste un travail manuel. Traiter l'archive dès l'extraction, comme décrit ici, demande bien moins d'efforts que de démêler la situation plus tard.