Sans doute avez-vous déjà rencontré ce problème à l’occasion d’un copié-collé d’un PDF ou d’un autre fichier vers une autre application. Des lettres accentuées bizarres ou des accents décalés se substituent aux lettres accentuées. C’est un souci que l’on peut rencontrer dans tout type de texte, des PDF aux noms de fichier ou dossier.
Quand je fais des textes pour des BD, en général, j’écris d’abord ces textes dans un logiciel servant à ça.[^1]
Puis je les copie-colle dans Clip Studio Paint, le logiciel de dessin BD/Manga sur lequel je travaille.
Ce logiciel originaire du japon possède des options de texte puissantes mais parfois contraignantes. Ainsi il n’existe pas de fonction pour convertir le texte en majuscule.
Je convertis donc mes textes en capitales avant de les copier/coller.
Pour transformer mes textes de minuscules en majuscule, plutôt que d’utiliser la fonction intégrée au système, j’utilisais un petit programme popclip qui permet d’accéder rapidement à des transformations de texte. Je recommande ce logiciel même si dans le cas présent, il fait partie de la péripétie.
En collant mon texte dans Clip Studio Paint, je me suis retrouvé face à un souci : les accents étaient décalés des lettres.
En collant mon texte dans un éditeur de texte CotEditor -Text Editor for macOS je me suis aperçu que les lettres accentuées avaient un aspect bizarre.
Après de nombreuses recherches j’ai enfin identifié le problème.
C’est un problème qui vient de la façon dont nos systèmes ou nos applications utilisent Unicode.
Unicode
Unicode est un standard informatique qui permet des échanges de textes dans différentes langues C’est un système de codage de caractère de n\’importe quel système d\’écriture qui attribue un nom et un identifiant numérique à chaque caractère, quels que soit la plate-forme informatique ou le logiciel utilisé. Bref, c’est utilisé dans nos appareils pour encoder les caractères de nos textes.
Unicode attribue un numéro à chaque caractère. Ainsi un e sera noté ainsi : U+0065
Mais pour un é, les choses se compliquent car il existe au sein d’une même norme Unicode. Deux principales (en fait 4) façons de l’encoder : composed ou decomposed.
C’est à dire soit é, soit e + un accent. Décomposé : NFD : –U+0065 + (U+0301) Composé : NFC : 00e9
C’est cette utilisation qui peut dans notre cas poser des problèmes et nous faire apparaitre un é de façon étrange ou, dans l’exemple Clip Studio Paint, nous faire apparaitre le e et l’accent comme deux lettres séparées.
Selon les systèmes d’exploitation ou les applications Unicode peut être implémenté en utilisant l’une ou l’autre des méthodes. J’ai lu que macOS a longtemps utilisé la méthode decomposed, mais visiblement pas les dernières versions de l’OS. Certaines applications (tel Popclip) semblent encore utiliser cette façon d’encoder, alors que d’autres non.
Solutions
Noms de fichiers : Ne pas mettre d’accents
Même si Unicode est sensé résoudre, et ça marche dans la grande majorité des cas, ces soucis de lettres accentuées et de caractères spéciaux, pour les fichiers amenés à voyager sur différents systèmes et serveurs, il est plus prudent de s’abstenir d’utiliser les lettres accentuées ou des caractères spéciaux, cela prévient les rares imprévus de compatibilité qui peuvent se révéler problématiques en cas d’automatisation de traitement sur ces fichiers.
Sur des textes plus longs :
Unicode checker Sur les textes plus longs, à copier-coller entre certaines applications ou à récupérer dans certains documents (pdf, docx etc…), si l’on se retrouve avec ces problèmes d’accentuation il existe une solution.
UnicodeChecker
Sur macOS UnicodeChecker est un programme gratuit [disponible ici0]
(https://earthlingsoft.net), qui permet d’explorer et de convertir l’Unicode d’un texte. Ce programme est en anglais mais ça ne devrait pas être un souci.
Dans le cas qui nous intéresse
Pour résoudre notre point :
- Copier le texte où des lettres accentuées posent problème.
- Ouvrir UnicodeChecker
- Dans le menu File : Show Utilities Window
- Aller dans le menu Normalize (soit le 6e de la barre du haut ou par le menu déroulant dans la fenêtre)
- Coller le texte dans le champ Input
- Récupérer le texte dans le champ NFC
- Coller où vous voulez
Voilà votre texte est maintenant encodé en Unicode Composé, ce qui fait qu’une lettre accentuée a un code Unicode unique, ce qui devrait résoudre le problème.
il est possible aussi d’accéder à cette fonctionnalité par le menu Services de macOS : dans les préférences systèmes > Clavier > Raccourcis > Services cocher la case Convert to Unicode Normalization from C
Après, sur un passage sélectionné dans votre application de texte vous pouvez appeler cette fonction via le menu Services (il est aussi possible d’attribuer un raccourci clavier à cette fonction), ce qui opère la conversion.
J’espère que cette astuce vous est utile, si vous avez d’autres solutions, n’hésitez pas à les partager en commentaire.
[^1]: éditeurs markdown en général, mais parfois des éditeurs de texte voir des traitements de texte.