docomoの普通の携帯電話を買ったが、iPhoneからdocomoへのアドレス帳移行の手段が無い。

windowsのiTunesでiPhoneから読み込み→csv形式でドコモdatalinkで携帯電話に転送
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1124847736
という手段があるが、iTunesで読み込む時にoutlookがなければ駄目。windowsアドレス帳形式はドコモdatalinkで転送できない。


今回はiPhone→MacのiTunesでAddress Bookに読み込み→「グループのvcardを書き出し(vcf形式で)」→メールで携帯電話に転送
という手段で移行した。

ただし

  • 検索しやすいようにiPhoneでは読み仮名をローマ字で入力してたが、docomoはカタカナのみ対応
  • vcf形式は1ファイルに複数のvcardを保持できるはずなのに、SH-02Aは先頭のvcardしか読み込んでくれない
  • メールに同時に添付できるファイル数は10個まで

なので読み仮名は全部無くなったし、10個ずつ添付して登録したから面倒だった。


まず、一つのvcfファイルに複数のアドレス帳が入っていても全部読み込める機種なら、MacのAddress Bookからvcfで書き出して
nkf -s phone-addr.vcf > phone-addr-sjis.vcf
でshift jisに文字コードを変えれば読み込めるはず。(そういう機種があるならば)


ファイルを分割するためにスクリプトを書いた
convert-vcard-mac-docomo.rb
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'kconv'

if ARGV.size < 2
puts 'error! 入力ファイルと出力先ディレクトリ名を指定してください'
puts 'ruby convert-vcard-mac-docomo.rb /path/to/input/file.vcf /path/to/output/dir/'
exit 1
end
input = ARGV.shift
output = ARGV.shift
puts output += "/" if !(output =~ /\/$/)

delimiter = "BEGIN:VCARD"
cards = open(input).read.split(/#{delimiter}/m)
cards.shift # 1件目いらない

for i in 0...cards.size do
puts card = delimiter+cards[i]
puts "-"*10
open(output+"#{i}.vcf","w"){|f|
f.puts card.tosjis
}
end

mkdir ~/vcards
ruby convert-vcard-mac-docomo.rb ~/phone-addr.vcf ~/vcards/
で ~/vcards/にたくさんファイルができるので、10件ずつメールに添付して送って登録した。
指が憑かれた。


後で気づいたが、読み仮名はsjisで
SOUND;X-IRMC-N;CHARSET=SHIFT_JIS:ʼヨミガナ;;;;
と書いておくと読み込めるみたい。
俺の場合ローマ字→カタカナに変換しないとならなかったので面倒だが、suikyoを使えば楽にできるかもしれない。