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できちゃうっす。