VCF/vCard 转 CSV 转换器
立即把 VCF/vCard 联系人文件转换为 CSV 格式。查看联系人,并导出为能用 Excel 打开的文件,全部在浏览器中完成,不上传任何内容。
你的文件很安全:全部在浏览器中处理,不会上传任何内容。
将 VCF/vCard 文件拖到此处
或点击选择文件
支持 .vcf 和 .vcard 文件。
如何将 VCF/vCard 转换为 CSV
VCF(Virtual Contact File),也称 vCard,是存储联系人信息的标准文件格式。几乎所有联系人管理系统都在使用它,包括 Apple 通讯录、Google 通讯录、Microsoft Outlook 以及手机通讯录。一个 VCF 文件可以只包含一个联系人,也可以包含数百个联系人,每个联系人都带有姓名、电子邮件地址、电话号码、通信地址和公司信息等内容。
VCF 文件很适合在设备和应用之间传递联系人,但不容易直接打开或编辑。我们的 VCF 转 CSV 转换器会完全在你的浏览器中解析联系人文件,并把所有联系人整理成一张清晰易读的表格。然后,你可以把数据导出为 CSV 文件,在 Microsoft Excel、Google 表格、LibreOffice Calc 等电子表格软件中都能正常打开。导出的 CSV 带有 UTF-8 BOM(字节顺序标记),确保特殊字符和各种语言的姓名在 Excel 中正确显示。
这个工具适合在不同平台之间迁移联系人、制作邮件列表、核查联系人数据;如果你只是想看看 VCF 文件里有什么、又不想导入通讯录,也可以用它。
选择 VCF 文件
把 .vcf 或 .vcard 文件拖放到文件选择区,或点击后从设备中选择文件。无论文件里只有一个联系人还是有多个联系人,都可以处理。
查看联系人
文件中的所有联系人都会被解析,并以清晰的表格显示姓名、电子邮件地址、电话号码、地址和公司名称。导出之前,你可以先核对数据。
下载 CSV
点击“下载 CSV”按钮,即可把所有联系人导出为 CSV 文件。文件带有 UTF-8 BOM,与 Excel 兼容,特殊字符和各种语言的姓名都能正确显示。
对大多数 VCF 文件来说,转换都是瞬间完成的,即使包含数百个联系人也一样。所有处理都在你的浏览器本地进行,因此你的联系人数据(包括姓名、电话号码和电子邮件地址)不会离开你的设备。
这个 VCF 转换器的工作原理
.vcf 文件是纯文本,但它的折行规则和参数规则会让大多数简单的转换器出错——导出结果里经常出现姓名被截断、电话号码只剩一半,原因就在这里。这个解析器会在浏览器中处理这些规则。
- 折行还原(RFC 6350)
- vCard 会把较长的值折成多行,续行以一个空格或制表符开头。解析之前,会先把这些续行重新拼接起来,因此较长的地址或公司名称不会在折行处被截断。
- Android 导出的文件:quoted-printable 与 CHARSET
- Android 自带的导出功能会生成 vCard 2.1,并把中文姓名、地址等所有非 ASCII 的值写成 quoted-printable(N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E5=BC=A0;=E4=B8=89),过长的值还会在行尾用“=”断行。这些行会先被重新拼接,再按每个值声明的字符集(UTF-8、GBK、GB18030、Shift_JIS 等)解码,所以 CSV 里得到的是姓名,而不是一串编码。
- 参数与值分开处理
- 像 TEL;TYPE=CELL:13800138000 这样的属性,会在第一个冒号处拆分,并且只取参数之前的基本属性名,因此类型标注不会混进导出的值里。分组前缀也会同样去掉:Apple 会给部分项目加上分组前缀,比如带标签的邮箱、电话(item1.EMAIL、item2.TEL)和地址(item3.ADR),这些项会按 EMAIL、TEL、ADR 读取,而不会被跳过。
- 一个联系人有多个值
- 如果一个联系人有多个电子邮件地址或电话号码,不会只取第一个,而是全部收集起来,合并写入导出的同一个单元格。
- 结构化字段
- N(姓、名、中间名、前缀、后缀)和 ADR(街道、城市、地区、邮政编码、国家)是由多个组成部分构成的字段。空的部分会被丢弃,剩下的部分再拼接起来,因此你得到的是可读的姓名和地址,而不是一串多余的分号。
- CSV 带有 UTF-8 BOM
- 导出的 CSV 以字节顺序标记(BOM)开头。如果没有它,Windows 上的 Excel 会按系统默认的 ANSI 代码页来读取(简体中文版 Windows 是 GBK,即代码页 936),中文姓名就会变成乱码。这是 VCF 转 CSV 工具最常被抱怨的问题。
目前做不到的事
联系人中嵌入的照片(PHOTO)不会导出,因为 CSV 单元格不适合存放二进制图像数据。某些通讯录自行添加的自定义 X- 属性也会被忽略,而不是去猜测它们的含义。GBK、Shift_JIS 等旧字符集的值,只要文件用 CHARSET 声明了就能正确解码;没有注明字符集的文件不会去猜测,而是按 UTF-8 读取。因此,如果这类文件实际是 GBK 等编码,中文会显示为乱码(�),页面不会另外提示。