web-dev-qa-db-ja.com

MIMEエンコードされた、印刷可能なテキストの「= C2 = A0」とは何ですか?

これは、解析しようとしている生のメールの例です。

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

= C2 = A0とは何ですか?引用符で囲まれた印刷可能なパーサーを6個試しましたが、これを正しく処理できるものはありません。 C#でこれをどのように適切に解析しますか?

正直、今のところ、私はコーディングしています:

//TODO WTF
encoded = encoded.Replace("=C2=A0", "");

なぜなら、そのテキストがMIMEコンテンツ内にランダムに存在し、何にもレンダリングされることになっていない理由がわからないからです。削除するだけで、希望の効果が得られますが、なぜですか?!

明確にするために、(= [0-9A-F] {2})はエンコードされた文字であることを知っています。しかし、この場合、それは一見何もないことを表しています。

51
TheSoftwareJedi

「= C2 = A0」は、バイトC2 A0を表します。ただし、これはUTF-8であるため、00A0に変換されます。これは、改行しないスペースのUnicodeです。

TF-8(Wikipedia)を参照してください。

92
Steven Sudit