VCF

VCFファイルとは

スマートフォンやメールソフトが互いに送り合う、名刺の形式です。

VCF とは何か

VCF はプレーンテキスト形式です。どのエディターでも開けます。 プログラム間のデータ受け渡しのために使われます。

拡張子は .vcf、正式名称は vCard Contact です。ただしどちらも、そのファイルが中に何を持てるかほどには多くを語りません。このページの残りは、その中身についての話です。

VCF はどこから来たのか

1995 年までさかのぼります。 仕様は RFC 6350 です。

これだけ長く読まれ続けてきた形式なら、10 年後に取り出したいものを預けても大丈夫です。

仕様は公開されています

仕様書がそのまま公開されているので、中身を推し量るのではなく文書を読んで実装できます。この形式が数多くのプログラムに載っているのはそのためであり、20 年前に書かれたファイルが今も開けるのもそのためです。ただし「仕様が公開されている」ことと「使用料が要らない」ことは別の話です。中でコーデックを包んでいる形式では、特許のライセンスは仕様書が答えていない別の問題として残ります。

捨てられるものはありません

VCF ファイルは中身をそのまま保存します。保存し直しても何も変わらないので、開いて、直して、また保存する——それを何度繰り返しても劣化は積み上がりません。これが、渡すための形式ではなく作業のための形式である理由です。

VCF を開けるのは何か

Google Contacts、Apple Contacts、Microsoft Outlookが読めますし、同じ種類のプログラムならたいてい読めます。

ファイルが開かないとき、形式が悪いことはめったにありません。たいていはプログラムのほうが形式より古いのです。もっと古い形式に変換してしまうのが確実な逃げ道で、このサイトの残りの部分はそのためにあります。

ブラウザーで開く

これを読めるブラウザーはありません。

これを変換するいちばんよくある理由がこれです。形式が悪いのではありません。ファイルを見せたい場所が、それを読めないというだけのことです。

作業のための形式です

VCF は、開いて手を入れるために作られています。作業が続いているあいだはこの形式でファイルを持ち、完成したものが必要になるたびに、ここから書き出してください。

VCF はどこから来るか

スマートフォンです。ほぼ例外なく。Android、iPhone、Google 連絡先、Outlook から連絡先をエクスポートすれば VCF になり、メッセージやメールで一件の連絡先を共有してもこれが添付されます。これはそのすべてが合意している唯一の形式で、1995 年の設計にもかかわらず生き残っている理由です。

もう一つよくある出所はメールクライアントです。署名欄、アドレス帳、業務メールに付いてくる小さなカードはすべて vCard です。頼んでもいないのに contact.vcf のようなファイルを受け取ったなら、それが理由です。

一つのファイルが一件の連絡先も、五千件も持てます

これが両方向で人を引っかけます。スマートフォンから共有された vCard は一人の連絡先を含みます。アドレス帳からエクスポートされた vCard は、BEGIN:VCARD と END:VCARD の行の間にすべての連絡先を、一つずつ順番に含みます。

だから 4 MB の VCF は壊れた連絡先ではなく、あなたのアドレス帳まるごとです。それを取り込めば全項目が追加されます。逆に、番号を一つ共有するために自分がエクスポートしたファイルを誰かに送ると、全部が渡ってしまいます。どちらを手にしているか分からなければ、まずテキストエディタで開いてください。構造は一目で分かります。

バージョン番号が、そうあるべき以上に重要です

三つのバージョンが出回っていて、互換性はありません。バージョン 2.1 は 1996 年のもので、英語以外のテキストを、現代のソフトウェアがしばしば誤読する方式で符号化します。バージョン 3.0 は多くのシステムが書き出すものです。バージョン 4.0 は RFC 6350 で規定された現行の標準ですが、まだ広く受け入れられているわけではありません。

RFC 6350 は VERSION 行を BEGIN:VCARD の直後に置きますが、古いバージョンではカードのどこかにあればよいとされているので、2.1 のファイルでは二行目を読むのではなくその単語を検索してください。取り込みがうまくいかないときはこれを確かめる価値があります。「このプログラムは連絡先を読み込めない」というのは、たいてい「このプログラムは 4.0 を受け付けない」か「このファイルは 2.1 で機種依存文字が誤って解釈されている」のどちらかです。

アクセント記号や機種依存文字がおかしくなる理由

バージョン 4.0 は UTF-8 に落ち着き、この問題はおおむね解消しました。古いファイルにはその余裕がありませんでした。2.1 は quoted-printable 符号化を使い、文字集合をフィールドごとに宣言していて、多くのソフトウェアが一貫性なくそれを書いていました。

目に見える結果は、疑問符が並んだ名前や、変な位置の大文字、あるいは姓の途中に =C3=BC のような並びが現れることです。最後の例はまさに quoted-printable が透けて見えている状態で、データ自体は無事で、読む側が正しくデコードしていないだけです。文字コードを理解するツールで変換すれば直り、四百件の名前を打ち直す必要はありません。

写真はファイルの中に入っています

vCard は連絡先の写真を base64 のテキストとして埋め込めて、アドレス帳ソフトは既定でそうします。これが八百件の連絡先のエクスポートが数十キロバイトではなく数メガバイトになる理由です。

これはまた、VCF が取り込みに失敗する理由でもあります。一部のシステムはカードごとにサイズ上限を課していて、高解像度の写真が一件だけでそれを超えることがあります。一括取り込みが途中で止まったなら、どこかの連絡先に過大な写真が付いていることが原因として考えられ、ファイルを見ればどれか分かります。

CSV への変換で何が変わるか

これがいちばんよくある変換です。連絡先をスプレッドシートに入れて、重複を整理する、差し込み印刷に使う、CSV しか受け付けないシステムに取り込む。写像がうまくいくのは、vCard の大半が名前、組織、電話、メール、住所といった単純なフィールドだからです。

きれいには写像されないのは繰り返しの部分です。四つの電話番号と三つのメールアドレスを持つ連絡先は列にしなければならず、どのツールも少しずつ違う列名を選びます。名、姓、敬称に分かれた構造化された名前は、行き先が期待する形に押し込まれ、埋め込まれた写真は失われます。重複整理のためならそれで問題ありませんが、可逆なアーカイブとしては使えません。元の VCF を残してください。

スマートフォン間で連絡先を移す

確実な手順は VCF にエクスポートし、ファイルを転送し、取り込むことです。これは Android と iPhone のどちらの方向でも機能し、両方の端末が同じクラウドアカウントを信頼している必要もありません。それがたいてい人が手作業でこれをやっている理由です。

そのあと確かめるべきことが二つあります。重複です。取り込み先を先に消さずに取り込むとマージになり、たいていのアドレス帳の重複整理はうまくいきません。そしてグループやラベルです。これらは核となる形式の外にあり、一貫性なく扱われ、空のまま届く可能性がいちばん高いものです。名前と番号は確実に移りますが、その周りの整理はしばしば移りません。

基本情報

VCFフォーマットの識別子と出自。
拡張子.vcf, .vcard
メディアタイプtext/vcard
初版1995
仕様RFC 6350

VCF ファイルについてよくある質問

VCF ファイルはどう開けばいいですか

ダブルクリックすると連絡先アプリが取り込みを提案します。先に中身を見たいなら、どんなテキストエディタでも開けます。プレーンテキストで構造は一目で分かり、一人の連絡先なのかアドレス帳まるごとなのかをいちばん速く見分けられます。

自分の VCF に何百件も連絡先が入っているのはなぜですか

一つのファイルはカードをいくつでも、一つずつ順番に持てるからです。アドレス帳からのエクスポートは全員を含み、スマートフォンから共有された連絡先は一人だけを含みます。どちらも拡張子は同じなので、取り込みや送信の前に確かめる十秒には価値があります。

VCF を Excel に変換するには

CSV に変換してください。どのスプレッドシートも直接開けます。名前、組織、電話番号、メール、住所はきれいに写像されます。複数の番号を持つ連絡先は追加の列に広がり、埋め込まれた写真は失われます。

機種依存文字がおかしいのはなぜですか

古い vCard は quoted-printable 符号化を使い、文字集合をフィールドごとに宣言していて、読む側が誤って推測しがちです。名前の中の =C3=BC のような並びはデータが無事でデコードされていないだけであることを意味します。バージョン 4.0 のファイルは UTF-8 を使い、この問題はめったに起きません。

VCF で Android から iPhone に連絡先を移せますか

どちらの方向でも移せます。VCF にエクスポートし、メールやクラウドストレージでファイルを移し、取り込んでください。両方の端末が同じアカウントを共有している必要はなく、これがたいていこの方法が選ばれる理由です。取り込みはマージであって置き換えではないので、あとで重複を確かめてください。

VCF ファイルに写真は含まれていますか

しばしば含まれています。連絡先の写真は base64 のテキストとして埋め込まれていて、これが数百件のエクスポートが数メガバイトになる理由です。一枚だけ異常に大きい写真が、一括取り込みが途中で止まるよくある原因です。