出来てしまえば、たった60行のソースコード。
しかしアルゴリズムを調べるながら開発すると3時間~4時間ほど、
かかってしまう。不思議。
エディタを全画面化すればギリギリ画面内に収まるかどうかのコード
しかないのに。
ただのコーダーなら楽な仕事、ライブラリを使うプログラマーなら楽な仕事、
1から調べ、理解し、考え実装し、テストとなると大変。
車輪の再発明は、仕事をやる上では無駄…と言うか効率が悪い。しかしスーパー
プログラマーとして成長していくなら、自分は必要なものと考えてます。
こんなわけでメーラーで使われている、quoted-printable をデコードする
メソッドを実装しました。
Quoted-printable(QP encodingとも呼ばれる)は、印字可能な文字 (例えば、英数字や等号「=」)を使用した符号化方式であり、8ビットデータを 7ビットデータパスで転送するためのものである。 インターネット電子メールで使用できるようにするため、 Content-Transfer-Encodingとして定義されている。 wikiより |
これを実装する上で肝となったものは、
1B$B で2バイトコードが始まり、=1B(B で 2バイトコード終了と
言った所でしょうか。
とは言っても、上記の括りの間 1バイトコードも出てくるので
当然それも考慮しなければならない。
ネットで単純に紹介されている =8D=3D の形式だけではメーラーの本文は
デコード出来ないので要注意ですね。
16進数になっている、= が行の終端で出てくるときは特別な意味を持つ、
区切り文字を判断する、この3点を意識すれば60行ほどで実装できます。
純粋な C 言語だと、もう少し長くなるかもしれませんが。
0 コメント:
コメントを投稿