双六工場日誌

平凡な日常を淡々と綴ります。

スマホからガラケーに変えて連絡先がうまく移行できなかったので、Googleの連絡先をガラケーの電話帳に変換するスクリプトを書いた。

先日、ブログにも書いた通り、SIMフリースマホのZTE Blade Vec 4Gを買って、これまでスマホでやっていたことはおおよそそちらに移行を済ませました。

最近話題のSIMフリースマホ「ZTE Blade Vec 4G」を買って、一週間使ってみた。 - 双六工場日誌

結果、これまで使っていたスマホでは、音声電話とメール、おサイフケータイぐらいになったので、これまでのスマホ回線はauガラケー「Gratina」に機種変更。

f:id:sechiro:20141102194709j:plain

左がBefore、右がAfter。

機種変更はあっという間でおサイフケータイの移行もすんなりすみましたが、地味に引っかかったのが電話帳の移行。スマホからガラケーに変える人で同じようなことにハマる人も多いと思うので、移行の際に使ったスクリプトとメモを書いておきます。

結論としては、変換用のスクリプトを作ったので、以下の手順のとおりに作業すればOKだと思います。。スクリプト動作確認は、Mac OS X 10.9で行っており、変換済みデータの取り込みはGratinaで行っています。ただし、Mac OSで動かす場合は文字コードの変換にnkfを使っているので、事前にHomebrew等でnkfを入れてください。

  1. GmailからVCF形式で連絡先をエクスポート(contacts.vcf)
  2. 以下のスクリプトと同じフォルダに置いてスクリプトを実行
  3. 生成されたcontacts-converted.vcfを赤外線通信、Bluetooth、SDカード経由なりでガラケーに転送*1

Googleからエクスポートしたvcf形式のアドレス帳のふりがなをGratinaで読み込めるよう変換するスクリプト

ポイントは、以下。

  • Googleの連絡先からふりがなを引き継ぐためには、「X-PHONETIC-LAST-NAME」となっているフィールドを「SORT-STRING;CHARSET=SHIFT_JIS」に置き換え
  • 上記のフィールドは、Gratinaでは半角カナしか受け付けてくれなかったので、ふりがなを半角カナに変換
  • ファイル全体の文字コードはSHIFT-JISに変換

SHIFT-JISの半角カナでないといけないというところに、ガラケーらしさが漂っていますね。

今日は取り急ぎメモということで。


追記(11/08)

ほかにも同じことをやっていた人がいたので、補足情報として追記。

スマホからGRATINA(ガラケー)への電話帳移行の方法~携帯電話覚書き~

僕のスクリプトの変換結果は、電話番号、名前、ふりがな等は上記のブログの4とほぼ同じ結果のはずです。スマホでの電話帳バックアップだと、エクスポートデータにプロフィール画像などの付加情報も含まれるので、それらのデータも移行できる可能性があります。

ただ、この方法だとデータ量が多くなって、メールやBluetooth、赤外線通信での転送ができず、上記ブログのようなSDカード経由での転送がほぼ必須になります。そのため、プロフィール画像等の付加情報は移行対象から外したので、僕の方ではこの方法は取っていません。

Ggl2k | みーのぺーじ

こちらは、同じようなことを行うPythonスクリプト。ただ、作業後にこれを見つけたので、自分では試していません。

こちらはVCFではなく、CSVからデータを変換しています。VCF形式での連絡帳エクスポートでは、グループ情報が抜けてしまうので、グループを含めて移行するなら、このスクリプトのようにCSVからの変換が必要です。

グループ名を引き継ぐためには、ガラケーGoogle連絡先に設定されているグループを同期させた上で、グループ名をガラケーのグループ名のフィールド(X-GN;CHARSET=SHIFT_JISなど)にマッピングさせる必要があります。^^;

上記のページの以下の説明がこのグループ名の変換に対応した設定方法のようです。

ggl2k.pyの最初の部分にtaglist=["Family", "Friends"]というのがありますが、ここにグループ名を追加することで、携帯のアドレス帳にグループ設定をすることができます。例えば、

taglist=["会社","遊び友達","Family", "Friends"] とすれば、グループ設定に「会社」「遊び友達」が追加され、Google連絡帳のグループ設定が携帯のグループ設定に反映されます。

また、全角半角変換は、こちらのスクリプトだと全角英数字→半角英数字の変換もサポートしてますね。

追記ここまで。

*1:自分ではBluetoothで転送しました