AU携帯からアドレス帳をmicroSDカードにバックアップし、そのVCFデータをMacのAddress Book.appで読み込んでiPhoneと同期させてみたら、見事に全部移行できた!
…が、名前のふりがなが反映されていない…!!
今までの携帯では名前に対してフリガナを半角カタカナで入力していたが、iPhoneでは姓、名それぞれで全角のふりがなを振ることになる。
数件だけなら手打ちで何とかなるけど、何故か400件超の電話帳データがあってウンザリしたのと、ちょっとした興味から、例によってPerlスクリプトで旧携帯のVCFデータから半角カタカナのフリガナを取り出して全角ひらがなで姓と名で分けて出力させてみよう、としてみた。これを今のMac内のAddress Book.appで使っているデータに組み込んでいけばほぼ自動でふりがなを登録できる…はず!?
#!/usr/bin/perl use strict; use warnings; use Encode; use Encode::JP::H2Z; use Unicode::Japanese; my @array = (); my %data; for (<>) { chomp; %data = () if /^BEGIN:VCARD$/; push @array, {%data} if /^END:VCARD$/; (my $key, my $value) = split(/:/, $_); next unless defined $value; Encode::from_to($value, 'shift-jis', 'utf-8'); $data{$key} = $value; } for (@array) { my $name = $_->{'SORT-STRING'}; Encode::from_to($name, "utf-8", "euc-jp"); Encode::JP::H2Z::h2z(\$name); Encode::from_to($name, "euc-jp", "utf-8"); my $uj = Unicode::Japanese->new($name, 'utf8'); my $hira = $uj->kata2hira->get; print $name, "\n"; (my $sei, my $mei) = split(/ +/, $hira); print "[$sei]"; print "-[$mei]" if defined $mei; print "\n"; }
文字コードに対する理解が全然足りてない…orz