ウェブ

iPhone へアドレスブックの内容を整形してインポートする

2008/07/22

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

携帯からアドレスをインポートしたものの、データがうまくない

携帯(MediaSkin)からアドレスのデータをエクスポートしたところ、vcfフォーマットのデータが生成されました。このファイルにはすこし問題があって、

  • 姓名がわかれてなかったり
  • フリガナがついてなかったり

します。

実際、姓名はMediaSkinに分けて入れるフィールドがなかったためなのですが、フリガナについては入っているものの、インポート先のアドレスブック(Mac)で認識できませんでした。

手順

手順というほどのことではないのですが、移行は下記の手順で行いました。通常ならば3. は必要ないのかもしれませんが、今回「姓名を分ける」「フリガナをつける」に対応するため、スクリプトを書いています。

  1. 既存の携帯から miniSD や USBケーブルなどでデータを引き抜く
  2. 抜いた.vcfファイルを UTF-16 に変換
  3. 自作スクリプトで姓名を分割+フリガナの追加
  4. アドレスブック(Mac)へインポート
  5. 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 は 光一(こういち)を「ぴかいち」と読むなど、あんまりなところもありましたが、自分で書いていくよりよいので、スクリプトでグルグルまわして取得しました。)

これでアドレスブックにすっきりインポートすることができました。


related posts


tags




have your say

Add your comment below, or trackback from your own site. Subscribe to these comments.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">

:

:


« Ruby Enterprise Edition + Passenger2.0 RC1 でRailsを高速化?
» [Edge Rails] partialのcollection時に好きな変数名をつける:Collection Partial Variable Naming