プラスα空間

ブログ in お市 のーと

pb.vcfをアドレスブックで読む

912SHとBluetoothファイル交換と言う記事で、SoftBank(ソフトバンク)912SHからBluetoothでアドレス帳を一括送信するとpb.vcfと言うファイルがMac OS XのDocuments/telecomフォルダに作られますが、そのままではMac OS Xの住所録ソフト「アドレスブック」では読めない事を書きました。

また、pb.vcfはどうやったら戻せるの?と言う記事では、Mac OS Xに送ったpb.vcfを912SHに戻す方法がわからないと言う事を書きました。

ほとんど使い道の無かったpb.vcfですが、やっと活用方法を見つけました。pb.vcfをアドレスブックに読ませる事に成功したのです!!

もちろん、そのままの形式では読めない事がわかっています。なので、少しずつ読めない原因を探って行き、解決する事が出来ました。

まず、アドレス一件ずつにしないと読めないのではないかと言う事を疑いました。それで、pb.vcfをアドレス一件毎に分けるプログラムで、分割してみました。それをアドレスブックで開いてみると、やはり読めません。どうも、vcfファイルの中で読めない項目があるようです。

次に、一件分のvcfファイルを少しずつ修正しながら、アドレスブックで読む事に挑戦してみました。そしてわかったのが、”X-SSH-VCARD-PARAMS”と言う項目があると、アドレスブックで読めない事です。この項目を削除すると、正常にアドレスブックに登録されます。何と、画像データまでもがアドレスブックに登録されました。”X-SSH-VCARD-PARAMS”と言う項目には、着信時のLEDの色など、912SH固有の情報が保存されるようです(推測)。なので、削除してしまっても問題無いと思います。

それではと言う事で、pb.vcfに対して”X-SSH-VCARD-PARAMS”を削除したファイル、pb_nossh.vcfを作り、これをアドレスブックに読み込ませてみました。ところが、途中まで読み込んだ段階でエラーになってしまいます。読み込まれなかった部分を調べてみると、行の先頭が”=”の行があるカードでエラーになっていました。”X-GN”と言う項目なので、おそらくグループ名だと思います(推測)。グループ名が長い場合に、この現象が発生するようです(推測)。

グループ名もアドレスブックでは読めないので、”=”で始まる行を削除する処理を追加しました。処理した結果を”pb_nossh_noeq.vcf”に保存しました。それをアドレスブックに読ませました。その結果、エラー無く、全件のカードを読む事に成功しました。

ただ、完全な状態で読めるのではなく、カードの一部で文字化けが発生する場合があります。この原因はわかりません。でも、まれなので、許容できる範囲です。

Softbank 912SH

コメントを残す