3 points par GN⁺ 2026-02-04 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Récemment, d’anciennes citations d’e-mails ont circulé sur Twitter, suscitant des questions sur la présence de signes égal (=) en fin de phrase
  • Ces signes apparaissent lors du processus d’encodage « quoted-printable », où ils servent à indiquer qu’une ligne longue a été coupée et qu’elle continue à la ligne suivante
  • Lors de l’envoi d’e-mails, le saut de ligne standard est CRLF (retour chariot + saut de ligne), mais lorsqu’il est converti en NL d’Unix, un mauvais fonctionnement de l’algorithme de décodage peut laisser des signes égal ou faire disparaître des caractères
  • Le signe égal sert aussi à représenter des caractères non ASCII (ex. : =C2=A0), et un décodeur défectueux peut provoquer des erreurs en les remplaçant de manière simpliste
  • À l’origine du problème : une logique de décodage boguée et un traitement de conversion inadapté, ce qui montre que la personne ayant transformé l’e-mail maîtrisait mal l’aspect technique

L’origine des signes égal (=) dans les citations d’e-mails

  • Ces derniers jours, de nombreuses anciennes citations d’e-mails ont été partagées sur Twitter, avec un phénomène frappant : des signes égal visibles en fin de phrase

    • L’auteur réfute les hypothèses selon lesquelles il s’agirait d’une erreur de code ou d’OCR (reconnaissance optique de caractères)
    • En réalité, il s’agit d’une erreur de traitement d’encodage survenue lors de la conversion de l’e-mail dans un format plus lisible
  • À l’origine, les e-mails étaient du simple texte, mais pour gérer les lignes longues et les caractères spéciaux, l’encodage « quoted-printable » a été introduit

    • Lorsqu’une ligne longue est coupée, un signe égal (=) est ajouté en fin de ligne pour indiquer que « cette ligne continue »
    • Après ce signe égal vient alors CRLF (retour chariot + saut de ligne)

Erreurs d’encodage et de décodage des sauts de ligne

  • Les serveurs de messagerie utilisent CRLF comme saut de ligne standard, alors que les systèmes Unix n’utilisent que NL

    • Pendant la conversion, un octet disparaît, et si le décodeur le gère mal, le signe égal peut rester ou des caractères peuvent manquer
    • Par exemple, si « non- =CRLF cloven » est mal traité, on peut obtenir « non- loven », avec disparition du c
  • Certaines implémentations traitent le signe égal en fin de ligne en supprimant simplement deux caractères

    • Cet algorithme dysfonctionne sur les fichiers au format Unix, ce qui laisse le signe égal tel quel

Un autre usage du signe égal : l’encodage des caractères non ASCII

  • Le signe égal est aussi utilisé pour l’encodage des caractères non ASCII, en plus des sauts de ligne

    • Exemple : =C2=A0 signifie non-breaking space (espace insécable)
    • On le rencontre souvent dans le corps des e-mails pour l’indentation ou l’expression de caractères spéciaux
  • L’auteur suppose que certains convertisseurs se sont contentés d’un simple search-replace sur =C2, =A0, etc., sans utiliser de décodeur correct

Contexte technique et standard

  • La norme RFC 2045 définit l’encodage quoted-printable comme un mécanisme de transport

    • Après réception, il doit en principe être décodé puis stocké sous forme de texte propre
    • Mais dans les implémentations réelles, cette étape est parfois omise, d’où des erreurs fréquentes dans le traitement des sauts de ligne
  • Dans l’exemple de code, (quoted-printable-decode-string "he=\nllo") est correctement restauré en "hello"

    • Cela vient du fait qu’un algorithme supposant le contexte CRLF des serveurs SMTP a été réutilisé
    • Il fonctionne correctement sur les fichiers Windows, mais échoue sur Unix

Conclusion

  • Les signes égal dans les citations d’e-mails sont des résidus de l’encodage quoted-printable et le résultat combiné de défauts dans le traitement des sauts de ligne et le décodage des caractères non ASCII
  • La cause profonde du problème est une implémentation imprécise du décodeur et des erreurs de conversion d’encodage
  • L’auteur résume cela comme un problème technique et le résultat d’un mauvais traitement, et souligne la nécessité de respecter scrupuleusement les standards lors de la conversion des e-mails

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.