執筆 更新 10分で読めます

VCFファイルとは?vCardの中身・バージョンの違いと開き方

.vcf は連絡先をテキストで書いた vCard のファイルです。各行の意味、vCard 2.1・3.0・4.0 の違い(文字コードと quoted-printable)、iPhone・Android・Outlook が書き出す形式、名前が文字化けする理由と、受け取ったファイルの使い方まで。

誰が入っているかだけ見たいなら

VCF → CSV 変換ツールに .vcf を入れると、名前・メールアドレス・電話番号・住所・会社名が一覧になり、Excel で開ける CSV として保存できます。

VCF → CSV 変換を開く

ファイルはブラウザの中で読み取り、アップロードしません。

.vcf は vCard のファイルです。連絡先 1 件分の「カード」がテキストで書かれていて、1 つのファイルに何件でも入ります。カードは BEGIN:VCARD の行で始まって END:VCARD の行で終わり、そのあいだの 1 行ごとに名前、電話番号、メールアドレスといった項目が 1 つずつ入っています。

iPhone、Android の連絡帳アプリ、Google コンタクト、iCloud、Outlook は、どれも連絡先を vCard で書き出したり読み込んだりします。ただし書き出す vCard のバージョンと、日本語の名前の書き方がアプリによって違い、その違いのせいで読み込めなかったり名前が化けたりすることがあります。

.vcf の中身

.vcf をメモ帳などのテキストエディタで開くと、次のような行が並んでいます(架空の連絡先を vCard 3.0 で書いた例です)。

BEGIN:VCARD
VERSION:3.0
N:田中;由紀;;;
FN:田中 由紀
ORG:株式会社サンプル;営業部
TEL;TYPE=CELL:090-1234-5678
EMAIL;TYPE=INTERNET:yuki@example.com
ADR;TYPE=WORK:;;丸の内1-2-3;千代田区;東京都;100-0005;日本
END:VCARD

どの行も 項目名;パラメータ:値 の形です。項目名はその行が何かを表し(TEL なら電話番号)、セミコロンのあとのパラメータが種類を補い(TYPE=CELL は携帯電話)、コロンのあとが値です。連絡先が何件もあるファイルは、この塊が続けて並んでいるだけです。

行中身
VERSIONvCard のバージョン(2.1・3.0・4.0)
FN表示用の名前
N名前を 5 つに分けたもの。セミコロン区切りで姓、名、ミドルネーム、敬称(前)、敬称(後)の順
TEL電話番号。TYPE で携帯・音声・FAX・ポケベルなどの種類を示す
EMAILメールアドレス
ADR住所を 7 つに分けたもの。私書箱、建物・部屋番号、番地、市区町村、都道府県、郵便番号、国の順
ORG会社名と、続けて部署名
NOTE・BDAY・PHOTOメモ、誕生日、写真(文字に変換して埋め込むか、リンクで示す)

実際のファイルで目につく変わった書き方は、次の決まりによるものです。

  • エスケープ — 値の中のカンマやセミコロンは、前にバックスラッシュを付けて書きます(「Sample, Inc.」なら Sample\, Inc.)。N・ADR・ORG で何も付いていないセミコロンは、項目の区切りです。
  • 折り返し — 長い行は途中で切られ、続きの行は空白かタブで始まります。RFC 6350 は 75 バイトで折り返すよう勧めているので、埋め込まれた写真は英数字と記号の短い行がずらりと並んだ形になります。
  • グループ — item1.EMAIL のように項目名の前に付く item1. はグループです。RFC 6350 によると、同じグループの行はまとめて表示するためのもので、それ以外の意味はありません。

出典は RFC 6350(vCard 4.0)の 3.2〜3.4 節と 6 節です。

vCard 2.1・3.0・4.0 の違い

どのバージョンかは VERSION の行で分かります。vCard 4.0 ではこの行を BEGIN:VCARD の直後に置く決まりです。RFC 6350 の 6.7.9 節によると、それより前のバージョンではカードのどこに置いてもよく、2.1 では無くてもかまいませんでした(3.0 では RFC 2426 の 3.6.9 節ですでに必須)。

2.13.04.0
公開1996 年 9 月、versit コンソーシアム(Apple・AT&T・IBM・Siemens が設立)1998 年 9 月、RFC 24262011 年 8 月、RFC 6350
文字コード既定は ASCII。値ごとに CHARSET= で指定できる値ごとの CHARSET は廃止。指定できるのは、ファイルを運ぶメールの Content-Type ヘッダーだけUTF-8 のみで、ほかには変えられない
quoted-printable使える(ENCODING=QUOTED-PRINTABLE)廃止無し
そのほかTYPE= を省いてよい(TEL;CELL:)TYPE= が必須。N と FN の両方が必須。値の中の改行は \n と書くFN が必須。KIND(個人・グループ・組織・場所の区別)や ANNIVERSARY などが加わった。TEL を tel: のリンクで書ける

出典は vCard 2.1 の仕様書(Internet Archive に残っている写し)、RFC 2426 の 3.1.1〜3.1.2 節(FN と N が必須)と 5 節(vCard 2.1 との違い)、RFC 6350 の 6.2.1 節(FN が必須)、6.4.1 節(TEL の tel:)と付録 A です。

Apple・Android・Google・Outlook が書き出すもの

  • Mac の「連絡先」 — 既定は vCard 3.0 です。「連絡先」>「設定」>「vCard」で 2.1 に切り替えられ、2.1 のときのエンコーディングも選べます。メモと写真を書き出すかどうかもここで決めます。
  • iPhone と iCloud.com — iPhone は「連絡先」アプリのリストから連絡先を書き出し、メールやメッセージの .vcf 添付ファイルをタップすると読み込みます。iCloud.com は vCard を書き出し・読み込みでき、選んだ連絡先をまとめて 1 つのファイルにします。Apple の説明にはバージョンの記載がありません。
  • Android — Google の連絡帳アプリでは、画面下部の「修正と管理」>「ファイルへエクスポート」>「.vcf にエクスポート」です。ヘルプにバージョンの記載はありません。Android のオープンソース部分(AOSP)の vCard のコードは、既定で vCard 2.1 を UTF-8 で書き出し、ASCII 以外の文字を含む名前は quoted-printable(次の節)にします。
  • パソコンの Google コンタクト — Google のヘルプは、ほかのアカウントへ移すときは「連絡先を CSV ファイルまたは vCard ファイルとしてダウンロード」するよう案内しています。
  • Outlook(Windows) — 連絡先は vCard としてメールに添付して送ります(「連絡先の転送」>「名刺として」)。連絡先フォルダーをまとめて書き出す先は .csv です。たくさんの連絡先が入った .vcf を PC の Outlook に取り込むには、Microsoft の手順では Windows の Contacts フォルダーを使って、いったん CSV に変換します。

出典は Apple の「Macの「連絡先」で「vCard」設定を変更する」「アプリでMacの「連絡先」のvCardを読み込むことができない場合」「iPhoneで連絡先を書き出す」「iPhoneで連絡先を読み込む」「iCloud.comの連絡先を読み込む、書き出す、印刷する」、Google の「連絡先のエクスポート、バックアップ、復元」、AOSP の VCardConfig.java(VCARD_TYPE_DEFAULT = VCARD_TYPE_V21_GENERIC)と VCardBuilder.java、Microsoft の「連絡先を vCard として共有する」「iCloud (vCard .vcf ファイル) から Outlook に連絡先をインポートする」です。説明にバージョンが書かれていないものは、ファイルの VERSION の行を見れば分かります。

日本語の名前と文字化け(quoted-printable と CHARSET)

vCard 2.1 は ASCII が前提なので、日本語の名前は「どう書いたか」を添えて書きます。AOSP の書き出しと同じ形で「田中 由紀」を書くと、こうなります。

BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E7=94=B0=E4=B8=AD;=E7=94=B1=E7=B4=80;;;
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E7=94=B0=E4=B8=AD=20=E7=94=B1=E7=B4=80
TEL;CELL:09012345678
END:VCARD

ENCODING=QUOTED-PRINTABLE は、1 バイトずつ = と 16 進数 2 桁で書いたという意味で、CHARSET=UTF-8 はそのバイト列を UTF-8 として読めという指定です。=E7=94=B0 が「田」に当たります。AOSP のコードは長い値を書くとき、行末に = を置いて次の行へ続けます。テキストエディタでは読めませんが、壊れているわけではありません。

2.1 では CHARSET=SHIFT_JIS のように UTF-8 以外の文字コードも指定できます。AOSP には日本の携帯電話向けの書き出し形式があり、そのコードのコメントには、互換性を最大にするには文字コードを Shift_JIS にするのがよいと書かれています。下は同じ名前を Shift_JIS で書いた例です。

N;CHARSET=SHIFT_JIS;ENCODING=QUOTED-PRINTABLE:=93=63=92=86;=97=52=8B=49;;;

困るのは、Shift_JIS のような文字コードで書いてあるのに、CHARSET がどこにも無いファイルです。UTF-8 として読まれると名前が化けます。このサイトの変換ツールに、CHARSET を付けずに Shift_JIS で「田中;由紀」と書いた vCard を入れると、名前は「�c�� �R�I」と表示されました。

3.0 では値ごとの CHARSET と quoted-printable が廃止され、4.0 は UTF-8 しか使えません。3.0 や 4.0 のファイルなら、最初の例のように日本語がそのまま書かれているのが本来の形です。

.vcf を受け取ったら

  • スマホの連絡先に入れる — iPhone ならメールやメッセージの .vcf 添付ファイルをタップします。Android では Google の連絡帳アプリでファイルから読み込みます。両方の詳しい手順とほかの移し方はスマホ間で連絡先を移行する方法にまとめています。
  • パソコンで取り込む — iCloud.com では「連絡先を読み込む」で取り込め、複数の人が入った vCard は 1 人ずつ別の連絡先になります。PC の Outlook は、上のとおり CSV を経由します。
  • Excel や Google スプレッドシートで見る — 先に CSV に変換します。実際の変換例と、電話番号の先頭の 0 を消さずに開く方法は「VCF を CSV に変換して Excel で開く方法」にあります。
  • 誰が入っているか確かめる — 読み込む前や、心当たりのない .vcf が届いたときは、VCF → CSV 変換ツールに入れると一覧で見られます。

このサイトの変換ツールが読めるもの

VCF → CSV 変換ツールが、氏名・メール・電話番号を含む連絡先を解析表示している画面。
画面 .vcf を連絡先の一覧として読み取り、CSV に保存できる状態。

VCF → CSV 変換ツールは、ファイルをブラウザの中で読み取ります。読めるものは次のとおりです。

  • vCard 2.1・3.0・4.0。1 つのファイルに何件入っていても、複数のファイルをつなげたものでも読めます
  • quoted-printable の値(行末の = で続く行も含む)と、CHARSET で指定された文字コードの値(UTF-8、Shift_JIS、GBK など、ブラウザが扱える文字コード)
  • 折り返した行、バックスラッシュのエスケープ、item1. のようなグループ、UTF-16 で保存されたファイル

CSV には名前・メール・電話番号・住所・会社名の 5 列を保存します(スマホの画面の一覧では、住所と会社名の列を省きます)。名前は FN から取り、FN が無ければ N を使います。電話番号やメールアドレスが 2 つ以上あるときは、1 つのセルに「; 」で区切って入れます。CSV は contacts.csv という名前で、BOM 付きの UTF-8 で保存します。

できないことは次のとおりです。

  • 名前もメールアドレスも無い連絡先(電話番号だけのものなど)は読み込みません。その結果 1 件も残らなければ、画面にそう表示します。
  • 写真・メモ・誕生日・ラベルなど、5 列以外の項目は CSV に入りません。
  • vCard 4.0 で電話番号をリンクの形で書いたものは、tel:+81-90-1234-5678 のように頭の tel: が付いたまま入ります。
  • CHARSET がファイルのどこにも無い Shift_JIS などの文字は、UTF-8 として読むので「�」に化け、警告も出ません(ファイル内のほかの値が 1 種類の文字コードを指定していれば、指定の無い値もその文字コードで読みます)。

よくある質問

VCF は遺伝子解析の Variant Call Format と同じものですか?
別物です。略称も拡張子 .vcf も同じですが、遺伝子解析の VCF は遺伝的変異のデータをタブ区切りで並べた形式で、仕様では 1 行目を ##fileformat=VCFv4.5 のような ##fileformat= の行にすると決まっています。連絡先のファイルなら、そこに BEGIN:VCARD があります。このサイトの変換ツールに遺伝子解析の VCF を入れると、vCard ではないと表示されます。
1 つの .vcf に連絡先は何件まで入りますか?
形式としての上限はありません。RFC 6350 は、vCard が 1 件以上続けて並んだものとして定義しています。iCloud.com は選んだ連絡先をすべて 1 つの vCard ファイルに書き出し、複数の人が入った vCard を読み込むと 1 人ずつ別の連絡先にします(Apple)。
Mac の「連絡先」で書き出した vCard を、ほかのアプリが読み込めません。
Apple によると、「連絡先」は vCard 3.0 で書き出し、アプリによってはこの形式を読み込めません。「連絡先」>「設定」で「vCard」をクリックし、2.1 のフォーマットを選んで書き出し直します(必要ならエンコーディングも変えます)。終わったら 3.0 に戻しておきます。
Excel で開いたら全部 1 列になりました。
vCard はカンマ区切りではないので、Excel は列に分けられません。先に CSV に変換してください。手順は「VCF を CSV に変換して Excel で開く方法」にあります。

この記事を書いた人

Ren

OpenedFile 開発者

OpenedFile を一人で作って運用しています。きっかけは、届いたメールの winmail.dat がどうやっても開けなかったこと。見つかるオンライン変換サービスはどれも「まずファイルをサーバーにアップロードしてください」というものばかりでした。それなら自分で書こうとTNEF パーサをフルスクラッチで実装し、以来このサイトのツールはすべてブラウザ内で完結しています。

OpenedFile について

この記事をシェア