Che cosa è “= C2 = A0” in MIME codificato, il testo quoted-printable?
-
03-10-2019 - |
Domanda
Questo è un esempio e-mail cruda che sto cercando di analizzare:
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
Qual è = C2 = A0? Ho provato una mezza dozzina di parser quoted-printable, ma nessuno maniglia questo modo corretto. Come sarebbe un modo corretto analizzare questo in C #?
Onestamente, per ora, sto codifica:
//TODO WTF
encoded = encoded.Replace("=C2=A0", "");
Perché non riesco a capire il motivo per cui il testo è là in modo casuale all'interno del contenuto MIME, e non dovrebbe essere reso in qualsiasi cosa. Con solo la rimozione, sto ottenendo l'effetto desiderato - ma perché
?!Per essere chiari, io so che (= [0-9A-F] {2}) è un personaggio codificato. Ma in questo caso, rappresenta apparentemente NIENTE.
Soluzione
"= C2 = A0" rappresenta i byte C2 A0. Tuttavia, poiché questa è UTF-8, si traduce in 00A0, che è Unicode per non-breaking space.
Vedere UTF-8 (Wikipedia).