QUOTED-PRINTABLE
携帯電話のメールバックアップ(本体機能としての)で作成された vmg ファイルを処理するようにしたのだけれど、ようやく新しい携帯電話( 3G )での様式がわかったので見ると若干違っている。
他社とのメール、つまり INET となっているものの本文が以前の携帯電話では base64 でエンコードされていたのに、今度は Shift-JIS のプレーンテキスト。そのまま読める形になっている。Subject だけは MIME エンコードされているのだけれど nkf を使ってデコードしたみたけれど文字化けした。なぜ?
それはともかく、ソフトバンクでいう(というか過去のものだけれど)スカイメール、SMS というやつだと QUOTED-PRINTABLE というエンコードで、聞きなれないものだったので妙に特殊だったらどうしようかと思ったのだが、Ruby の pack でデコードできると知ってちょっと感動した。string.unpack("M*") とすればデコードしてくれる。
新しい携帯電話で、そうしたエンコードの違いを処理してくれればよいのだが、オレさま流儀で使われるふしのある vMessage ファイルを思うとやや不安もあるので、新しいほうの形式にあわせたファイルに変換も試みておこうとあれこれ始めたのだが、QUOTED-PRINTABLE の切り分けがなかなか完全にいかずに悩む。まあ正規表現の書き方が不十分なためなのだと思うのだけれど、単純そうでなかなか難しい。
基本は「 =AB 」のように 16 進数にして並べているのだが、ときおりそのままの数字単体とか半角記号とかが入ったりする。また、文字列の一行に制限があるので、次の行に続くときには行末に = がついている。というところ。
この本文部分だけまとめて切り出してしまえばよかろうと思ったのだが、なんだかおかしくなった。TMail でもみて少し勉強したほうがよいだろうか、と落としてきたところ。
ま、うまくマッチできないのはごくわずかなので最悪手作業で直せばいいのだけれど、ちょっとくやしいのでもう少しあがいてみることにする。
| 固定リンク
コメント