Voici un exemple d'e-mail brut que j'essaie d'analyser:
MIME-version: 1.0
Content-type: text/html; charset=UTF-8
Content-transfer-encoding: quoted-printable
X-Mailer: Verizon Webmail
X-Originating-IP: [x.x.x.x]
=C2=A0test testing testing 123
Qu'est-ce que = C2 = A0? J'ai essayé une demi-douzaine d'analyseurs cotés imprimables, mais aucun ne gère cela correctement. Comment analyser correctement cela en C #?
Honnêtement, pour l'instant, je code:
//TODO WTF
encoded = encoded.Replace("=C2=A0", "");
Parce que je ne peux pas comprendre pourquoi ce texte est là au hasard dans le contenu MIME, et n'est pas censé être rendu en quoi que ce soit. En le supprimant simplement, j'obtiens l'effet souhaité - mais POURQUOI?!
Pour être clair, je sais que (= [0-9A-F] {2}) est un caractère codé. Mais dans ce cas, cela ne semble rien.
"= C2 = A0" représente les octets C2 A0. Cependant, puisque c'est UTF-8, cela se traduit par 00A0, qui est l'Unicode pour l'espace insécable.
Voir TF-8 (Wikipedia).