Pourquoi les noms de fichiers sont-ils cassés entre Mac et Windows ?
Vous avez déjà envoyé un fichier depuis un Mac vers un PC Windows et constaté que le nom du fichier était illisible — des accents séparés, des caractères étranges ? C'est le problème Unicode NFD vs NFC.
Qu'est-ce que l'Unicode ?
L'Unicode est la norme universelle d'encodage de texte. Il attribue un numéro unique (appelé point de code) à chaque caractère de chaque langue. Par exemple, la lettre 'A' est U+0041 et le 'é' est U+00E9.
NFC vs NFD : la cause du problème
L'Unicode permet de représenter certains caractères de deux manières différentes :
NFC (Forme composée)
Les caractères sont stockés comme un seul point de code. Par exemple, 'é' est stocké comme U+00E9.
NFD (Forme décomposée)
Les caractères sont décomposés en un caractère de base et des marques combinatoires. Le même 'é' devient U+0065 (e) + U+0301 (accent aigu combinatoire).
Les deux formes semblent identiques à l'écran mais sont stockées différemment en mémoire. Cette différence est la cause des noms de fichiers cassés.
Pourquoi macOS utilise-t-il NFD ?
Apple a choisi NFD pour ses systèmes de fichiers (HFS+ puis APFS) car la forme décomposée simplifie la comparaison et le tri des chaînes de caractères. Quand macOS enregistre un fichier, il convertit automatiquement le nom en NFD. Windows et Linux, eux, utilisent généralement NFC. Ainsi, quand vous transférez un fichier d'un Mac vers Windows, le nom peut contenir des caractères décomposés que Windows n'affiche pas correctement.
🇰🇷 Le coréen : le cas le plus visible
Le coréen est le cas où ce problème est le plus frappant. En NFC, la syllabe '한' est un seul caractère (U+D55C). En NFD, elle est décomposée en trois jamo : 'ㅎ' + 'ㅏ' + 'ㄴ'. Un fichier nommé '한글.txt' devient 'ㅎㅏㄴㄱㅡㄹ.txt' sur Windows — complètement illisible.
ㅎㅏㄴㄱㅡㄹ.txt한글.txt🇫🇷 Le français : les accents séparés
Les caractères accentués français comme é, è, ê et ç sont touchés. En NFD, 'résumé.pdf' devient 'r + e + accent aigu combinatoire + sumé + accent aigu combinatoire.pdf'. Sur certains systèmes, cela peut sembler similaire, mais cela pose des problèmes de recherche et de tri de fichiers.
résumé.pdfrésumé.pdf🇩🇪 L'allemand : les trémas cassés
Les trémas allemands (ö, ü, ä) sont décomposés en NFD. 'Über.docx' devient 'U + tréma combinatoire + ber.docx'. Cela peut causer des problèmes lors du partage de fichiers avec des utilisateurs Windows ou Linux.
Über.docxÜber.docx🇻🇳 Le vietnamien : les diacritiques complexes
Le vietnamien est particulièrement touché car ses caractères portent souvent plusieurs signes diacritiques. Un caractère comme 'ệ' peut être décomposé en 'e + accent circonflexe combinatoire + point souscrit combinatoire' — trois points de code pour un seul caractère visible.
Việt Nam.txtViệt Nam.txt🇪🇸 L'espagnol : le problème du ñ
Le ñ espagnol est décomposé de U+00D1 en 'N' + tilde combinatoire (U+0303). Les voyelles accentuées comme á, é, í, ó, ú sont également touchées.
España.txtEspaña.txtQuand ce problème survient-il ?
- Envoi de pièces jointes par e-mail depuis Mac vers Windows
- Partage de fichiers via clé USB
- Upload vers le stockage cloud (Google Drive, Dropbox, OneDrive)
- Transfert de fichiers sur le réseau (NAS, partages SMB)
- Extraction de fichiers ZIP créés sur Mac
- Utilisation de systèmes de contrôle de version (Git)
Comment FilenameFixer résout ce problème
FilenameFixer convertit les noms de fichiers de NFD vers NFC en utilisant la méthode native String.prototype.normalize() de JavaScript. La conversion se fait entièrement dans votre navigateur — aucun fichier n'est envoyé à un serveur. Le contenu de vos fichiers reste totalement intact ; seul le nom est modifié.
Pourquoi traiter dans le navigateur ?
Traiter les fichiers dans le navigateur signifie que vos données ne quittent jamais votre appareil. Il n'y a aucun serveur à qui faire confiance, aucune politique de confidentialité à vérifier, et aucun risque de fuite de données. L'outil fonctionne aussi hors ligne et est extrêmement rapide.