0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iPhone用VCFファイル(電話番号一覧 連絡先)を作成する。 旧携帯から抽出したvcfファイルを加工

Posted at

携帯電話やスマートフォンの連絡先をエクスポートするとvcfの拡張子が付いたテキストファイルが得られる。
ただし、バージョンや方言の問題で、他機種にインポートできないことがある。
ここでは、1.iPhoneでインポートするための最低限の仕様を考察。2.テキストエディタの置換機能で変換するための小技を記述する。
iPhone11,win10,秀丸エディタ
iCloud(ブラウザから)

機種ごとの電話帳ファイルVCFファイルについて

2G,3GケータイVCFファイル

マイクロSDカードや赤外通信、USB接続などでデータをエクスポート。

BEGIN:VCARD
VERSION:2.1
N;CHARSET=SHIFT_JIS:私の名前
SOUND;X-IRMC-N;CHARSET=SHIFT_JIS:ワタシノナマエ
TEL;CELL:08012345678
EMAIL;INTERNET:
X-CLASS:PUBLIC
X-GNO:0
X-GN;CHARSET=SHIFT_JIS:
ADR;HOME;CHARSET=SHIFT_JIS;ENCODING=QUOTED-PRINTABLE:;;;;;;
NOTE;CHARSET=SHIFT_JIS;ENCODING=QUOTED-PRINTABLE:
END:VCARD

iPhoneのVCFファイル

iCloudの連絡先からエクスポート、インポートできる。

BEGIN:VCARD
VERSION:3.0
N:自宅;;;;
FN:自宅
X-PHONETIC-LAST-NAME:じたく
TEL;TYPE=HOME;TYPE=pref;TYPE=VOICE:050 123 4567
PRODID:-//Apple Inc.//iCloud Web Address Book 2201B9//EN
REV:2021-11-06T18:25:24Z
END:VCARD

最低限の仕様にしたiPhoneのVCFファイル

BEGIN:VCARD
VERSION:3.0
N:自宅
FN:自宅
X-PHONETIC-LAST-NAME:じたく
TEL;TYPE=HOME;TYPE=pref;TYPE=VOICE:0501234567
END:VCARD

TEL;TYPE=HOME;は固定電話,
TEL;TYPE=CELL;だと携帯電話
電話番号の区切りのスペースは無くても大丈夫

X-PHONETIC-LAST-NAME:は無くても大丈夫だが、漢字ではあいうえお順に並ばないので使った方が良い。

VCFファイルについて(UTF-8形式)

vcfファイルを編集・作成した後文字コードをutf-8にしないと文字化けするので注意。

各連絡先(レコード)はbeginとendではさまれている。複数件数の場合、単純に同じ繰り返しが続く。
BEGIN:VCARD
・・・・・
END:VCARD

VERSION:2.1と3.0があるらしい。

FN:フルネーム iPhoneでは必須のよう
X-PHONETIC-LAST-NAME:アップルのふりがなの拡張記載らしい。

このあたりの記述は、アップルの方言の記載だと思う。
PRODID:-//Apple Inc.//iCloud Web Address Book 2201B9//EN
REV:2021-11-06T18:25:24Z

CHARSET=SHIFT_JISの記述も不要

正規表現(検索文字を置換に使う)

ちょっと難しく感じたのが、
N:ネーム1 の記述を以下のように2行にしたかったFN:が必須なのでF:を重複して記載する方針

N:ネーム1
FN:ネーム1
X-PHONETIC-LAST-NAME:アップルのふりがな

正規表現を用いた以下の置換でうまくいった。(円記号は半角に修正のこと)
検索文字列:¥nN:(.+)¥n
置換文字列:¥nN:¥1¥nFN:¥1¥nX-PHONETIC-LAST-NAME:¥n

検索文字列の最初の¥n(改行)が無いとすべての大文字のNを置換してしまうため必要。

変更したくない部分(レコードごとの人名など)を残すために、「タグ付き正規表現」を使う。
秀丸のヘルプから抜粋して引用-------
例えば、「AさんはBさんの友達です」というような文章を、「BさんはAさんの友達です」のように変換したい場合、
検索文字列: (.+)さんは(.+)さんの友達です
置換文字列: ¥2さんは¥1さんの友達です
 とすることで、「A」と「B」に相当する部分の入れ替えができます
ここまで引用--------¥記号は半角を使用のこと
一番目のカッコ( )の中を¥1で覚えておいて、置換の時に使うことが出来る。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?