過去の投稿記事 new!
・【画像】漫画でわかる外国人参政権
・東京電力のHPで停電状態が確認できたり(サービス再開!)
・戦国時代 ~ 江戸時代の徳川家康が熱かった
・vaio のバッテリは寿命が短いような気がする
・話題の Western Digital 製 WD20EARS を購入した
・C01LC をビックカメラで買ってきた
・2025年には空中都市が現実化?!
・【動画】わかりやすい「宇宙ひも理論」
・今世紀には「富士山噴火」「東海連動地震」「首都圏直下型地震」か?
・滅びた町、南浜町が Googleストリートビューで見れる

【 amazon 送料無料キャンペーン 】

バックリンクはご自由にどうぞ!     http://mfsocket.blogspot.com/feeds/posts/default?alt=rss リンク集 / ログイン

2010/11/06
quoted-printable のデコードを実装した

 
出来てしまえば、たった60行のソースコード。
 
しかしアルゴリズムを調べるながら開発すると3時間~4時間ほど、
かかってしまう。不思議。
 
エディタを全画面化すればギリギリ画面内に収まるかどうかのコード
しかないのに。
 
ただのコーダーなら楽な仕事、ライブラリを使うプログラマーなら楽な仕事、
1から調べ、理解し、考え実装し、テストとなると大変。
 
車輪の再発明は、仕事をやる上では無駄…と言うか効率が悪い。しかしスーパー
プログラマーとして成長していくなら、自分は必要なものと考えてます。
 
 
こんなわけでメーラーで使われている、quoted-printable をデコードする
メソッドを実装しました。
 
Quoted-printable(QP encodingとも呼ばれる)は、印字可能な文字
(例えば、英数字や等号「=」)を使用した符号化方式であり、8ビットデータを
7ビットデータパスで転送するためのものである。

インターネット電子メールで使用できるようにするため、
Content-Transfer-Encodingとして定義されている。              wikiより
 
これを実装する上で肝となったものは、
1B$B  で2バイトコードが始まり、=1B(B2バイトコード終了
言った所でしょうか。
 
とは言っても、上記の括りの間 1バイトコードも出てくるので
当然それも考慮しなければならない。
 
ネットで単純に紹介されている =8D=3D の形式だけではメーラーの本文は
デコード出来ないので要注意ですね。
 
16進数になっている、= が行の終端で出てくるときは特別な意味を持つ、
区切り文字を判断する、この3点を意識すれば60行ほどで実装できます。
 
純粋な C 言語だと、もう少し長くなるかもしれませんが。

0 コメント:

  • コメントには <b>, <strong>, <em>, <i>, <a> など一部の HTML タグを使用できます。