※ ChatGPTを利用し、要約された質問です(原文:quoted-printableでの「=」の扱い)
quoted-printableでの「=」の扱い
このQ&Aのポイント
quoted-printableでの「=」の扱いについて調査しました。
E-Mailでの文字コードiso-2022-jp、エンコードはquoted-printableの場合、文字コードに「3D」(エンコードすると=になる)を含む文字が出てきた場合の処理方法を調査しました。
特定の環境で受け取ったメールの一部が文字化けしており、その原因を調査しました。また、エンコードおよびデコードの際に、「=」がどのように扱われるかについても考察しました。
・E-Mailで、文字コードはiso-2022-jp、エンコードがquoted-printable(ヘッダに誤りはない)
・各行で、エンコードされている部分は、「=1B$B」「=1B(B」で挟まれている
という状況で、文字コードに「3D」(エンコードすると=になる)を含む文字が出てきた場合、どう処理されるのでしょうか。
例:「そして(24 3D 24 37 24 46)」という文字列
エンコードすると、「$=$7$F」
ここで、この「=」は、さらにエンコードして「=3D」にするのでしょうか?
それとも、「=」そのままで扱うのでしょうか?
ある環境で受け取ったメールが一部文字化けしていたので調べたところ、
この部分が、「$=3D$7$F」とエンコードされていました。
(この部分は文字化けしていません)
文字化けしていたのは、「今週中(3A 23 3D 35 43 66)」の部分で、
エンコードすると「:#=5Cf」になると思うのですが、こちらの環境で「今樔(3A 23 5C 66)」になっていました。
デコードする際に、「=5C」→「\」にすると辻褄が合いそうなのですが…。
(ただ、受け取ったメールでは、この部分は「:#\f」になっていました。1回デコード済み?)
エンコードするシステムの管理にかかわっているわけではないので、半分興味本位(もう半分は、場合によっては不具合報告を出すため)なのですが、ご教示いただけると幸いです。
…まぁ、iso-2022-jpをわざわざquoted-printableでエンコードしなくても、とも思うのですが、絵文字とか対応のためにやってるのかなぁ、と…。
お礼
再びありがとうございます。 これを見て、いろいろと混乱していたことに漸く気がつきました…(滝汗) 最初の記号混じりはただ単にJISを区切ってASCII文字に置き換えただけなのですね。 で、そこから先がquoted-printableで処理する領域、と…。 わざわざありがとうございました! おかげ様で理解できました。