Tue, 06 Sep 2011 (平成23年) [長年日記]
_ vCard の変換
会社支給品なのだからそれなりに使えるように会社サイドが手を打つのは当然だし、昨日の様子を見ているとそうしないとどうにもならない人が少なくないように思えたので、まずは会社の人たちの連絡先のデータくらいは用意すべきだろうとどういうデータを用意すればいいのか調べてみた。
「連絡先のインポート、エクスポート、共有」を見ると vCard 形式のファイルでやり取りできるとのことなので、これまで支給されていたフィーチャーフォンから vCard 形式でエクスポートして S! メールで送ってやればどうにかなるだろうと思ってやってみたら読み取れない形式ですとかそんなことを言われてしまった。しかたないので Streak のほうに一つだけ手で連絡先を入れてエクスポートして、テキストエディタで両方を比べてみたらどちらも vCard 2.1 なのだが含まれている属性が全然違っていた。幸いにして Streak のほうがシンプルだったので元になる vCard をちょいちょいと加工して(要らない項目はバッサリ切り捨てて)やればいいだろうと久しぶりにプログラミング。
めんどくさいのは Streak に持っていくには名前を Quoted-printable でエンコードしないといけないところだなと思いつつ、調べてみると Array#pack でテンプレート文字として "M" を使えばできることがわかって意気が揚がる。
ただし、こんなのを
N;CHARSET=SHIFT_JIS:野田;佳彦;;;
こういう具合に複数行にしないといけなくて
N;CHARSET=SHIFT_JIS;ENCODING=QUOTED-PRINTABLE:=96=EC=93c;=89=C0=95F;;; FN;CHARSET=SHIFT_JIS;ENCODING=QUOTED-PRINTABLE:=96=EC=93c=20=89=C0=95F
しかも微妙に違うデータに変わっている。=20 って何だろうと考えてみると フルネーム Formatted Name("This is the way that the name is to be displayed." ということは表示名とでも理解しておけばいいのかな)なので「野田 佳彦」としてからエンコードしてるのだろうと推定。実際には「野田;佳彦」を「野田 佳彦」としてからエンコードではなく、「野田;佳彦」をエンコードした結果で ; を =20 に置換するようにして手抜き。
これだけのことなのに手探りでやってると三時間くらいはあっという間に過ぎてたりする。ボク自身は機種変更しないからめんどくさいことはそうはないだろうと思っていた一昨日までの自分はシステム管理者としての立場を忘れていたお馬鹿だよなぁ。