1. ホーム
  2. encoding

[解決済み] MIMEエンコードされたquoted-printableテキスト中の"=C2=A0 "とは何ですか?

2022-03-02 18:09:59

質問

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

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とは何ですか? 半ダースの quoted-printable パーサーを試しましたが、これを正しく処理するものはありませんでした。 C#でこれを正しくパースするにはどうしたらいいのでしょうか?

正直、今はコーディング中です。

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

なぜなら、なぜそのテキストがMIMEコンテンツ内にランダムに存在し、何にもレンダリングされないことになっているのかが分からないからです。 それを削除することで、望ましい効果を得ることができました。

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

解決方法は?

=C2=A0 はC2 A0というバイトを表しています。これはUTF-8なので、U+00A0に変換され、これはnon-breaking spaceのユニコードである。

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