iPhoneのような携帯端末で GPS を使ったアプリを作ってみたかったので、テスト端末と自分に言い聞かせて購入に踏み切りました。買ったはいいのですが、アドレスデータの移行がうまいこといかず、ちょっと手を入れたのでメモしておきます。

携帯からアドレスをインポートしたものの、データがうまくない
携帯(MediaSkin)からアドレスのデータをエクスポートしたところ、vcfフォーマットのデータが生成されました。このファイルにはすこし問題があって、
- 姓名がわかれてなかったり
- フリガナがついてなかったり
します。
実際、姓名はMediaSkinに分けて入れるフィールドがなかったためなのですが、フリガナについては入っているものの、インポート先のアドレスブック(Mac)で認識できませんでした。
手順
手順というほどのことではないのですが、移行は下記の手順で行いました。通常ならば3. は必要ないのかもしれませんが、今回「姓名を分ける」「フリガナをつける」に対応するため、スクリプトを書いています。
- 既存の携帯から miniSD や USBケーブルなどでデータを引き抜く
- 抜いた.vcfファイルを UTF-16 に変換
- 自作スクリプトで姓名を分割+フリガナの追加
- アドレスブック(Mac)へインポート
- iTunes でシンク
.vcfはよくわからなかったのですが、下のような感じで BEGIN:VCARD ~ END:VCARD までで一行ずつアドレスデータを記述していくようです(ぼくの携帯からはCHARSET=SHIFT_JISという設定が入っていますが、これは必要ありませんでした)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | BEGIN:VCARD VERSION:3.0 N;CHARSET=SHIFT_JIS:姓 名;;;; FN;CHARSET=SHIFT_JIS:姓 名 SORT-STRING;CHARSET=SHIFT_JIS:セイメイ X-PHONETIC-FIRST-NAME: X-PHONETIC-LAST-NAME: TEL;TYPE=PREF,CELL:080******** TEL;TYPE=VOICE:03******** EMAIL;TYPE=PREF,CELL:sei_mei@hoge-mobile.com EMAIL;TYPE=PCS:sei_mei@hoge-pc.com CLASS:PUBLIC BDAY:******** X-CONSTELLATION: REV: X-REDUCTION: X-GNO: X-GN;CHARSET=SHIFT_JIS:グループ設定なし END:VCARD |
姓名をわける
上の3行目「N;CHARSET=SHIFT_JIS:姓 名;;;;」の箇所で指定することが出来ます。このままだと「姓 名」が名字になってしまいますが、下記のように「;」で姓名をわけてあげることで、ちゃんと認識してくれます(CHARSET~は取ってしまっても問題ありません)。
ぼくの場合、携帯の電話帳に登録するときに姓名を半角スペースでわけていたので、わけるのは簡単でした。。
N;姓;名;;;
フリガナを振る
上の6,7行目「X-PHONETIC ~」に指定することでちゃんと認識します。携帯から出力したときにはここの行がなかったため、スクリプトで追加しました。フリガナは5行目から持ってきたかったのですが、どこからが姓で名なのかsplitのしようがないので、登録されている漢字から、Yahoo! の ルビ振りWebサービス を使って登録しました。
X-PHONETIC-FIRST-NAME:めい X-PHONETIC-LAST-NAME:せい
(ルビ振りAPI は 光一(こういち)を「ぴかいち」と読むなど、あんまりなところもありましたが、自分で書いていくよりよいので、スクリプトでグルグルまわして取得しました。)
これでアドレスブックにすっきりインポートすることができました。

