Qエンコード
主にメールヘッダのエンコードに使われます。
8bitデータを「=nn」(nnは16進数の文字コード。大文字で表記)にするという変換はQuoted-printableと同じですが、ヘッダという特殊な場所で使われるので、エンコードすべき文字が多くなります。
半角スペースは「_」(あるいは=20) にします。「=?_」以外の文字はそのまま書かれることになりますが、タブ改行はエンコードします。
MTAが受信したHTMLメールを保存したテキストファイルをWebで表示しようとしてハマりました。Qエンコード知りませんでした orz
ついでにRubyで簡単に扱えることを知って驚愕。
$ irb irb(main):001:0> ['abc,ccc => "xxxxx"'].pack('M') => "abc,ccc =3D> \"xxxxx\"=\n" irb(main):002:0> "abc,ccc =3D> \"xxxxx\"=\n".unpack('M') => ["abc,ccc => \"xxxxx\""]
Rubyってすげえ。いろいろpack/unpackできちゃうっす。