Corriger les accents Unicode sur macOS avant de publier dans WordPress

Quand vous copiez du texte depuis un PDF sur macOS, puis que vous le collez dans WordPress, les accents peuvent parfois se comporter bizarrement. Un é peut sembler suivi d’une espace, les sauts de ligne peuvent apparaître n’importe où, et certains caractères accentués peuvent casser la mise en page.

Le texte paraît pourtant normal à l’œil nu. Et c’est bien le piège : deux chaînes Unicode peuvent s’afficher exactement pareil, tout en étant encodées différemment. Magnifique petit traquenard typographique.

Dans ce guide, nous allons corriger les problèmes d’accents Unicode sur macOS avant publication dans WordPress ou un autre CMS. Nous verrons la différence entre NFC et NFD, puis plusieurs solutions pratiques avec UnicodeChecker, Python, le presse-papiers macOS, les fichiers texte, les noms de fichiers et WordPress.

Kinsta: Premium Managed WordPress hosting

Le symptôme : des espaces après les caractères accentués

Le cas typique arrive avec un PDF ouvert dans Aperçu, l’application Preview installée par défaut sur macOS.

Vous sélectionnez un passage, vous copiez le texte, puis vous le collez dans WordPress. Et là, certains accents semblent se détacher des lettres. Vous pouvez voir des espaces étranges, des retours ligne parasites, ou une mise en forme cassée dans l’éditeur.

Exemple visuel possible :

étrange
à la place de
étrange

À l’œil nu, la différence peut être invisible. Pourtant, dans le premier cas, le caractère accentué peut être composé de deux points de code Unicode : une lettre de base, puis un accent combinant.

Le vrai problème : caractères précomposés et décomposés

Unicode permet de représenter certains caractères accentués de plusieurs façons équivalentes.

Par exemple, la lettre é peut être encodée :

  • comme un caractère précomposé : é, soit U+00E9 ;
  • comme une lettre e, soit U+0065, suivie d’un accent aigu combinant, soit U+0301.

Les deux formes sont canoniquement équivalentes. Elles peuvent donc s’afficher de la même manière. En revanche, elles n’ont pas la même représentation binaire, et certains logiciels ne les traitent pas toujours avec la même élégance.

C’est là qu’interviennent les formes de normalisation Unicode :

  • NFC : forme composée, souvent la plus pratique pour le web et les CMS ;
  • NFD : forme décomposée, fréquente dans certains traitements internes ;
  • NFKC : forme composée avec compatibilité, utile dans certains nettoyages ;
  • NFKD : forme décomposée avec compatibilité.

Pour publier du texte français dans WordPress, la cible raisonnable est généralement NFC. Elle compose les lettres accentuées quand c’est possible, ce qui évite beaucoup de surprises dans les éditeurs, exports, scripts et comparaisons.

Kinsta: Premium Managed WordPress hosting

Pourquoi macOS est souvent impliqué

macOS manipule très bien Unicode, mais certains workflows déclenchent des formes décomposées ou des caractères combinants. Cela peut venir d’un PDF, d’un copier-coller depuis Aperçu, d’un ancien document, d’un export bureautique, d’un nom de fichier, ou d’un outil qui conserve la normalisation d’origine.

Le système de fichiers APFS accepte des noms de fichiers UTF-8 valides et gère les variantes de normalisation pour retrouver les fichiers. Mais cela ne signifie pas que tout texte copié depuis un PDF sera automatiquement normalisé en NFC avant d’arriver dans WordPress.

Le Finder peut sembler tout afficher correctement. Puis votre CMS, votre terminal, Git, un export CSV, un script Python ou un outil de migration peut révéler que le texte n’est pas normalisé comme prévu. L’interface fait joli. Les octets, eux, gardent les dossiers.

Solution rapide : normaliser le presse-papiers macOS en NFC

La solution la plus simple et reproductible consiste à normaliser le contenu du presse-papiers en NFC avant de le coller dans WordPress.

Copiez d’abord votre texte depuis le PDF. Puis lancez cette commande dans le Terminal :

pbpaste | python3 -c "import sys, unicodedata; print(unicodedata.normalize('NFC', sys.stdin.read()), end='')" | pbcopyLangage du code : JavaScript (javascript)

Ensuite, collez dans WordPress avec Cmd+V. Le texte du presse-papiers a été remplacé par une version normalisée en NFC.

Cette méthode a trois avantages :

  • elle ne dépend pas d’une application graphique abandonnée ;
  • elle fonctionne avec tout texte copié dans le presse-papiers ;
  • elle garde les accents au lieu de les translittérer en ASCII.

Pour un usage fréquent, vous pouvez en faire un alias shell.

Kinsta: Premium Managed WordPress hosting

Créer un alias pour normaliser le presse-papiers

Sur macOS, le shell par défaut est généralement Zsh. Ouvrez votre fichier ~/.zshrc :

nano ~/.zshrc

Ajoutez cet alias :

alias nfc-clipboard='pbpaste | python3 -c "import sys, unicodedata; print(unicodedata.normalize(\"NFC\", sys.stdin.read()), end=\"\")" | pbcopy'Langage du code : JavaScript (javascript)

Rechargez votre shell :

source ~/.zshrc

Désormais, après avoir copié un texte depuis un PDF, lancez simplement :

nfc-clipboard

Puis collez dans WordPress. C’est rapide, propre, et cela évite les bricolages manuels.

Normaliser un fichier texte complet en NFC

Si vous travaillez avec un fichier .txt, .md ou un export de contenu, normalisez directement le fichier.

python3 -c "import sys, unicodedata, pathlib; p=pathlib.Path(sys.argv[1]); p.write_text(unicodedata.normalize('NFC', p.read_text(encoding='utf-8')), encoding='utf-8')" fichier.txtLangage du code : JavaScript (javascript)

Pour créer un nouveau fichier normalisé sans écraser l’original :

python3 -c "import sys, unicodedata, pathlib; src=pathlib.Path(sys.argv[1]); dst=pathlib.Path(sys.argv[2]); dst.write_text(unicodedata.normalize('NFC', src.read_text(encoding='utf-8')), encoding='utf-8')" source.txt source-nfc.txtLangage du code : JavaScript (javascript)

Je préfère cette seconde méthode quand le fichier vient d’un client, d’un PDF converti, ou d’une source que vous ne maîtrisez pas. Garder l’original permet de comparer en cas de souci.

Kinsta: Premium Managed WordPress hosting

Nettoyer aussi les retours ligne parasites

Les PDF ne posent pas seulement des problèmes d’accents. Ils injectent souvent des retours ligne au milieu des phrases. La normalisation Unicode ne corrige pas ce point à elle seule.

Pour un nettoyage rapide du presse-papiers, vous pouvez normaliser en NFC et remplacer les retours ligne simples par des espaces :

pbpaste | python3 -c "import sys, re, unicodedata; text=unicodedata.normalize('NFC', sys.stdin.read()); text=re.sub(r'(?<!\n)\n(?!\n)', ' ', text); print(text, end='')" | pbcopyLangage du code : HTML, XML (xml)

Cette commande conserve les paragraphes séparés par une ligne vide, mais supprime les retours ligne isolés à l’intérieur des phrases.

Relisez toujours le résultat. Les PDF complexes, colonnes, notes de bas de page et césures peuvent demander une correction humaine. Oui, le PDF reste un format merveilleux pour imprimer. Pour extraire du texte propre, c’est parfois une machine à fabriquer de la poésie accidentelle.

Utiliser UnicodeChecker en mode graphique

Si vous préférez une interface graphique, UnicodeChecker reste une option pratique.

La méthode :

  1. Lancez UnicodeChecker.
  2. Ouvrez File > New Utilities Window.
  3. Choisissez l’outil Normalize.
  4. Collez le texte copié depuis le PDF dans le champ d’entrée.
  5. Copiez la sortie NFC.
  6. Collez le résultat dans WordPress ou votre CMS.
UnicodeChecker sur macOS avec l’outil Normalize pour comparer NFD, NFC, NFKD et NFKC

Dans UnicodeChecker, les champs NFC et NFKC produisent des formes composées. Pour un contenu éditorial WordPress classique, choisissez NFC. NFKC peut modifier davantage certains caractères de compatibilité, ce qui n’est pas toujours souhaitable dans un texte littéraire, académique ou typographique.

Sélection du champ NFC dans UnicodeChecker pour copier un texte Unicode normalisé

Au cas où UnicodeChecker disparaît des interwebs, en voici une copie de sauvegarde : UnicodeChecker.

Vérifier si deux textes visuellement identiques diffèrent vraiment

Pour comprendre le problème, vous pouvez inspecter les points de code Unicode d’une chaîne.

Copiez un caractère suspect, puis lancez :

pbpaste | python3 -c "import sys; print(' '.join(f'U+{ord(c):04X}' for c in sys.stdin.read()))"Langage du code : JavaScript (javascript)

Un é précomposé donnera :

U+00E9

Un é décomposé donnera :

U+0065 U+0301

La différence est invisible dans beaucoup de polices. Pourtant, elle existe. Et certains outils la verront très bien, surtout les scripts, imports, exports, comparaisons Git ou traitements automatisés.

Repérer les caractères combinants dans un fichier

Pour trouver des caractères combinants dans un fichier texte, utilisez Python :

python3 -c "import sys, unicodedata; text=open(sys.argv[1], encoding='utf-8').read(); [print(i, c, unicodedata.name(c, 'UNKNOWN')) for i, c in enumerate(text) if unicodedata.combining(c)]" fichier.txtLangage du code : JavaScript (javascript)

Si la commande retourne beaucoup de lignes avec COMBINING ACUTE ACCENT, COMBINING GRAVE ACCENT ou d’autres marques combinantes, votre texte contient probablement des caractères décomposés.

Ce n’est pas toujours une erreur. Mais pour un contenu web éditorial, normaliser en NFC simplifie souvent la maintenance.

Cas WordPress : coller dans Gutenberg sans casser les accents

Gutenberg accepte du texte Unicode. Le problème vient plutôt du contenu source, du PDF, du presse-papiers, d’un outil intermédiaire ou d’un ancien export.

Workflow recommandé pour un texte extrait d’un PDF :

  1. Copier le texte depuis le PDF.
  2. Normaliser le presse-papiers en NFC avec la commande nfc-clipboard.
  3. Coller dans un éditeur de texte brut si besoin.
  4. Nettoyer les retours ligne parasites.
  5. Coller dans Gutenberg.
  6. Relire les accents, apostrophes, guillemets et espaces insécables.

Évitez de passer par des traitements qui changent la typographie sans vous prévenir. Certains éditeurs remplacent les apostrophes, normalisent les espaces ou modifient les caractères invisibles. Ils pensent aider. Parfois, ils repeignent juste la porte pendant que la maison brûle.

Cas WordPress : noms de fichiers et médias accentués

WordPress nettoie les noms de fichiers lors de l’upload avec sa fonction interne sanitize_file_name(). Elle retire certains caractères problématiques, remplace des espaces, et convertit souvent les accents via remove_accents().

Malgré cela, je recommande d’éviter les noms de fichiers accentués pour les médias destinés au web. Préférez :

meditation-kriya-yoga.pdfLangage du code : CSS (css)

Plutôt que :

méditation kriya yoga.pdfLangage du code : CSS (css)

Les accents dans les contenus ne posent pas de souci quand ils sont bien encodés. Pour les noms de fichiers, rester en ASCII évite des problèmes de compatibilité entre macOS, Linux, Windows, ZIP, FTP, CDN, scripts de sauvegarde et outils de migration.

Normaliser des noms de fichiers macOS avant envoi

Si vous devez envoyer un lot de fichiers créés sur macOS vers Linux, Windows, un NAS ou un client, vérifiez les noms de fichiers accentués.

Pour afficher les noms de fichiers avec caractères non ASCII :

find . -name '*[! -~]*' -printLangage du code : PHP (php)

Pour normaliser les noms de fichiers en NFC avec Python, testez d’abord en mode simulation :

python3 -c "import os, unicodedata; [print(path, '=>', unicodedata.normalize('NFC', path)) for path in os.listdir('.') if path != unicodedata.normalize('NFC', path)]"Langage du code : CSS (css)

Pour un vrai renommage, utilisez plutôt un script dédié et testez-le sur une copie. Les renommages récursifs peuvent vite devenir sportifs, surtout si plusieurs fichiers deviennent identiques après normalisation.

Cas Git : les accents peuvent créer de faux changements

Git peut montrer des différences ou des renommages inattendus si des noms de fichiers passent d’une forme Unicode à une autre. C’est particulièrement visible dans les projets partagés entre macOS, Linux et Windows.

Avant de committer des fichiers aux noms accentués, vérifiez :

git status --porcelain=v1

Si vous travaillez sur un projet web, la meilleure stratégie reste simple : utilisez des noms de fichiers ASCII, en minuscules, avec des tirets.

article-unicode-macos.png
guide-kriya-yoga.pdf
capture-ecran-wordpress.jpgLangage du code : CSS (css)

Ce n’est pas romantique, mais c’est robuste. Les serveurs aiment rarement la poésie dans les noms de fichiers.

Cas base de données : vérifier l’encodage WordPress

Si vos accents sont cassés partout sur le site, le problème ne vient peut-être pas du presse-papiers. Il peut venir de la base de données, d’un mauvais import SQL, d’une ancienne conversion ISO-8859-1 vers UTF-8, ou d’une table avec un charset incohérent.

Avec WP-CLI, vérifiez le charset et la collation configurés :

wp config get DB_CHARSET
wp config get DB_COLLATELangage du code : JavaScript (javascript)

Vérifiez aussi les tables :

wp db query "
SELECT
  TABLE_NAME,
  TABLE_COLLATION
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
ORDER BY TABLE_NAME;
"Langage du code : PHP (php)

Pour WordPress moderne, utf8mb4 est généralement attendu. Ne convertissez pas une base à l’aveugle. Exportez d’abord, testez sur staging, puis corrigez proprement.

Si vous migrez un site ou importez une base, vous pouvez compléter avec migrer WordPress vers un nouveau serveur avec WP-CLI.

Différence entre normaliser et supprimer les accents

Normaliser en NFC ne supprime pas les accents. Cela conserve le texte en Unicode, mais sous une forme plus stable.

Exemple :

é reste é

Supprimer les accents, en revanche, translittère le texte :

é devient e
à devient a
ç devient c

Pour un article WordPress, gardez les accents. Pour un slug, une URL, un nom de fichier ou un identifiant technique, utilisez souvent une version sans accents.

Créer un petit outil local macOS avec Automator ou Raccourcis

Si vous normalisez souvent du texte avant publication, vous pouvez créer un raccourci macOS qui exécute la commande NFC sur le presse-papiers.

Dans l’app Raccourcis, créez un raccourci qui exécute un script shell :

pbpaste | python3 -c "import sys, unicodedata; print(unicodedata.normalize('NFC', sys.stdin.read()), end='')" | pbcopyLangage du code : JavaScript (javascript)

Vous pouvez ensuite lui attribuer un raccourci clavier. Le workflow devient alors :

  1. copier depuis le PDF ;
  2. lancer le raccourci NFC ;
  3. coller dans WordPress.

C’est exactement le genre de micro-automatisation qui évite vingt petites irritations par semaine. Pas spectaculaire, donc très rentable.

Checklist de correction

  • Le texte copié depuis le PDF est normalisé en NFC.
  • Les retours ligne parasites sont nettoyés.
  • Les caractères accentués sont conservés, pas translittérés.
  • Les noms de fichiers web restent en ASCII, minuscules et avec tirets.
  • Les contenus WordPress sont collés en texte propre dans Gutenberg.
  • Les imports SQL utilisent une base et des tables cohérentes en UTF-8/utf8mb4.
  • Les workflows Git évitent les noms de fichiers accentués.
  • Les textes longs sont relus après extraction PDF.

Pour aller plus loin avec macOS, WordPress et les contenus propres

Si vous préparez des contenus sur macOS avant publication, ces guides complètent bien la gestion des fichiers, migrations, encodages et workflows WordPress.

Besoin de fiabiliser vos contenus WordPress ?

Je peux auditer votre site WordPress, corriger les problèmes d’encodage, nettoyer vos contenus et mettre en place un workflow éditorial plus fiable pour vos publications.

  • Diagnostic des problèmes d’encodage, accents, contenus copiés depuis PDF et caractères invisibles.
  • Nettoyage WordPress : contenus, médias, slugs, noms de fichiers et base de données.
  • Migration WordPress avec WP-CLI, contrôle UTF-8/utf8mb4, search-replace et staging.
  • Workflow macOS pour publication : PHP, Composer, Git, SVN, WP-CLI et automatisations locales.
  • Maintenance WordPress, WooCommerce, performance, sécurité et documentation technique.

Pour publier plus proprement et éviter les surprises Unicode, contactez-moi ici.

FAQ

Pourquoi les accents copiés depuis un PDF se comportent mal sur macOS ?

Le texte peut utiliser des caractères Unicode décomposés : une lettre de base suivie d’un accent combinant. Visuellement, cela ressemble au bon caractère, mais certains logiciels le traitent différemment.

Quelle forme Unicode choisir pour WordPress ?

Pour un contenu éditorial classique, choisissez NFC. Cette forme compose les caractères accentués quand c’est possible et évite beaucoup de différences invisibles.

NFC supprime-t-il les accents ?

Non. NFC conserve les accents. Il normalise seulement leur représentation Unicode. Supprimer les accents est une translittération différente, utile surtout pour les noms de fichiers, slugs ou identifiants techniques.

Puis-je coller directement depuis Aperçu vers Gutenberg ?

Oui, si le résultat est propre. Mais si vous observez des espaces étranges, des accents instables ou des retours ligne parasites, normalisez d’abord le presse-papiers en NFC.

Les accents dans les noms de fichiers sont-ils dangereux ?

Ils ne sont pas dangereux en soi, mais ils peuvent créer des problèmes de compatibilité entre macOS, Linux, Windows, ZIP, CDN, Git, scripts et outils de migration. Pour le web, utilisez des noms ASCII simples.

Comment savoir si un caractère est composé ou décomposé ?

Inspectez ses points de code avec Python. Un é composé apparaît comme U+00E9. Un é décomposé apparaît comme U+0065 U+0301.

Conclusion

Les problèmes d’accents sur macOS viennent souvent d’une différence invisible entre Unicode composé et décomposé. Le texte peut sembler correct, mais casser un collage, un export, une comparaison ou un affichage dans WordPress.

La solution la plus fiable consiste à normaliser le texte en NFC avant publication. Vous pouvez le faire avec UnicodeChecker, mais une commande Python avec pbpaste et pbcopy offre une méthode plus rapide, scriptable et durable.

Gardez les accents dans vos contenus. Simplifiez les noms de fichiers. Et, surtout, méfiez-vous des caractères invisibles : ils ont le chic pour transformer un petit copier-coller en enquête médico-légale.

Sources

Demandez à l'IA son opinion
Gravatar for Matt Biscay

Je suis Matt Biscay, développeur WordPress & WooCommerce certifié chez Codeable, administrateur système et enseignant.

J’aide les entreprises à créer, optimiser et fiabiliser leurs sites WordPress avec une approche technique propre : performance, sécurité, maintenance, développement sur mesure et résolution de problèmes complexes.

Sur Skyminds, je partage des tutoriels WordPress, WooCommerce, Linux et administration système, avec des solutions testées sur des cas réels et pensées pour durer.

Découvrez mes services WordPress et WooCommerce.

Laisser un commentaire