`
hklongshao
  • 浏览: 74238 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论
阅读更多
原文转载:http://zengrong.net/post/695.htm


vCard有三种数据类型,single type,list type,structured type.
Single type如FN;ENCODING=b;VALUE=uri:liudehua  FN是字段名,第一个分号(;)到第一个冒号(:)之间的是参数,第一个冒号(:)后面的全部作为FN的值。
List type 和single type不同的是在第一个冒号后面取出来的值都用分号分开(;)做为多个值返回。
Structurd type如:
N;ENCODING=b;VALUE=uri:family;given;other;suffix;prefix;    N表示字段名称,ENCODING=b;VALUE=uri是参数列表,参数列表配置在mobileInfo配置文件中,从冒号(:)后面一次表示家庭姓名、给定名、其他姓名、前缀、后缀,这在vCard规范中定义的次序,其中的值用分号(;)分开。在把contact转换成vCard文本时次序一定不能乱。

vCard 规范容许公开交换个人数据交换 (Personal Data Interchange PDI) 信息,在传统纸质商业名片可找到这些信息。规范定义电子名片(或叫vCard)的格式。
vCard 规范可作为各种应用或系统之间的交换格式。定义的格式与传送的方法无关。传送交换可能是文件系统,点对点交换的公共电话网络,以有线网络或无线传送的方式。用户能在互联网上直接利用vCard。电子邮件能转发在vCard中人信息。网页上很多用户填写的表格可自动使用vCard。
互联网邮件协会(Internet Mail Consortium)正在与互联网工程队伍(Internet Engineering Task Force IETF)共同努力,扩充以多用途互联网邮件为基础(Internet MIME-based)的互联网电子邮件标准标准,使之兼容vCard。vCard规范的XML绑定生成了DTD [vCard ,98] 有助于开发IMS LIP。


VCard 2.1(rfc-2426)标准通信薄基本格式(转自)


VCard 数据格式的标识符是VCARD

预定义的值类型:uri, date, date-time, float
新增加的值类型:binary, phone-number, utc-offset and vcard value
预定义的类型:SOURCE, NAME, PROFILE, BEGIN, END.
新增加的类型:FN, N, NICKNAME, PHOTO, BDAY, ADR, LABEL, TEL, EMAIL,
MAILER, TZ, GEO, TITLE, ROLE, LOGO, AGENT, ORG, CATEGORIES, NOTE,
PRODID, REV, SORT-STRING, SOUND, URL, UID, VERSION, CLASS, KEY
预定义的参数:ENCODING, VALUE, CHARSET, LANGUAGE, CONTEXT.
新增加的参数:TYPE
vCard数据格式行是:  类型 [;参数]:值

ADR;HOME;POSTAL;PARCEL:;;街道地址;深圳;广东;433330;中国
ADR:是一个类型,表示是一条地址信息
“;”号是分隔符合
HOME;POSTAL;PARCEL表示参数,表示ADR的用途或者是类别
:;;街道地址;深圳;广东;433330;中国 表示是一个ADR值,地址值
预定义类型的用法

BEGIN 和 END 类型
Vcard内容必须以BEGIN:VCARD开头,以END:VCARD结尾
参考一个vcard的例子1:
?Download test.vcf

BEGIN:VCARD
VERSION:2.1
N:姓;名
FN:姓名NICKNAME:nickName
ORG:公司;部门
TITLE:职位
NOTE;ENCODING=QUOTED-PRINTABLE:=C6=E4=CB=FB
TEL;WORK;VOICE:电话1
TEL;WORK;VOICE:电话2
TEL;HOME;VOICE:电话1
TEL;HOME;VOICE:电话2
TEL;CELL;VOICE:13590342862
TEL;PAGER;VOICE:0755
TEL;WORK;FAX:传真
TEL;HOME;FAX:传真
ADR;WORK:;;单位地址;深圳;广东;433000;国家
LABEL;WORK;ENCODING=QUOTED-PRINTABLE:=B5=A5=CE=BB=B5=D8=D6=B7
=C9=EE=DB=DA
=B9=E3=B6=AB
433000
=B9=FA=BC=D2
ADR;HOME;POSTAL;PARCEL:;;街道地址;深圳;广东;433330;中国
LABEL;HOME;ENCODING=QUOTED-PRINTABLE:=BD=D6=B5=C0=B5=D8=D6=B7
=C9=EE=DB=DA
=B9=E3=B6=AB
433330
=D6=D0=B9=FA
URL:网址
URL:单位主页
EMAIL;PREF;INTERNET:邮箱地址
X-QQ:38394246
X-ICQ:icq
X-WAB-GENDER:2
REV:20060220T180305Z
END:VCARD

NAME 类型

如果在内容中出现NAME类型,那么它的值是一个可以显示的,描述vCard源的文本 
PROFILE类型

如果出现PROFILE类型,那么它的值必须是“VCARD”  
SOURCE 类型

如果包含SOURCE类型,它的值提供一些怎样找到vCard源的信息

预定参数的用法

LANGUAGE

参考[MIME-DIR]文档

ENCODING

参考[MIME-DIR]文档

VALUE

参考[MIME-DIR]文档

预定义值类型的用法

在[MIME-DIR]中预定类型的值一定不能包含用逗号分开的列表,除N,NICKNAME, ADR和 CATEGORIES值类型外。

预定义值类型的扩展

BINARY

表明类型的值是二进制的,主要应用在类型PHOTO, LOGO, SOUND, and KEY中.

ENCODING参数的值必须指定为“B”
二进制的内容的编码参考[RFC 2047]

VCARD

表示一个类型的值是一个vCard对象

PHONE-NUMBER

表示类型的值是一个电话号码

UTC-OFFSET

表示时间

结构类型的值

复合类型值是用分号分开的字段的集合,复合类型值中避免使用分号,如何需要使用分号,需要用“\分号“替代

行的限定和分行

参考[MIME DIR],如果行的长度超过了75个字符,那么必须分行。

VCard 特征

标识类型

FN 类型定义

目的:vcard对象的名称,一个vcard对象必须包含FN类型。

例子:FN:Mr. John Q. Public\, Esq.

N类型定义

目的:FN表示一个vcard对象的名称,N表示这个对象名称的组成部分

例子:

N:Public;John;Quinlan;Mr.;Esq.

N:Stevenson;John;Philip,Paul;Dr.;Jr.,M.D.,A.C.P.

各个组成部分可以用分号分号,每个组成部分可以用逗号。

NICKNAME类型定义

目的:表示别名

例子:

NICKNAME:Robbie
NICKNAME:Jim,Jimmie

PHOTO类型定义

目的:vcard对象的图像信息

例子:

PHOTO;VALUE=uri:图片地址

PHOTO;ENCODING=b;TYPE=JPEG:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN

         AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm

         ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0

         <…remainder of "B" encoded binary data…>

   如果使用内联的二进制数据表示图片信息,那么;ENCODING=b

BDAY类型定义

目的:表示出生日期

例子:BDAY:1996-04-15

        BDAY:1953-10-15T23:10:00Z

        BDAY:1987-09-27T08:30:00-06:00

地址类型

ADR 类型定义

目的:是一个组合,用来表示一个地址信息,值类型是一个用分号分开的文本值

例子:ADR;TYPE=dom,home,postal,parcel:;;123 Main Street;Any Town;CA;91921-1234;A

ADR;HOME;POSTAL;PARCEL:;;街道地址;深圳;广东;444444;中国

        组合由一下部分顺序的组成:

the post office box;

the extended address;

the street address;

the locality (e.g., city);

the region (e.g., state or  province);

the postal code;

the country name

七个部分组成,如果,其他的一个部分没有,必须用分号分开

type 参数的说明

"dom"  国内地址

"intl" 国际地址

"parcel"包裹递送地址

"home" 居住地址;

"work"工作地址;

"pref" 有多个地址的时候,优先的地址

缺省的"TYPE=intl,postal,parcel,work",可以替换 
LABEL类型定义

目的:是一格式化的文本值,表示一个地址

例子:LABEL;TYPE=dom,home,postal,parcel:Mr.John Q. Public\, Esq.\n

         Mail Drop: TNE QB\n123 Main Street\nAny Town\, CA  91921-1234

         \nU.S.A.    
type 参数的说明

"dom"  国内地址

"intl" 国际地址

"parcel"包裹递送地址

"home" 居住地址;

"work"工作地址;

"pref" 有多个地址的时候,优先的地址

缺省的"TYPE=intl,postal,parcel,work",可以替换

和ADR的不同是 ADR的值是用分号分开的数据,LABEL就是一个格式化的文本。

电话通信地址类型

TEL类型定义

目的:指定一个电话号码

例子:TEL;TYPE=work,voice,pref,msg:+1-213-555-1234

说明:值是一个规范的全球唯一的电话号码

     TYPE参数的值有:

            "home"表示家庭电话

        "msg" 表示这个号码支持语音

"work" 工作电话

"pref" 表示多个电话中最喜欢使用的电话

"voice" 声音电话号码

               "fax"传真号码

        "cell" 表示手机电话

"video" 视频电话

"pager" 调度电话,估计是总机的电话

        "bbs" 公开的广播系统的电话

        "modem" 调制解调器电话

        "car"汽车电话

        "isdn" ISDN连接电话号码

"pcs" 个人通信服务电话

缺省是 "voice".

TYPE参数的用法是TYPE=work;TYPE=voice或者"TYPE=work,voice",缺省值可以被重置

"TYPE=work,home,voice,fax".

EMAIL类型定义

目的:指定一个电子邮件

例子:EMAIL;TYPE=internet:邮箱地址

    EMAIL;TYPE=x400:邮箱地址

    EMAIL;TYPE=internet,pref:邮箱地址

TYPE参数的使用

"internet" 表示一个internet 类型地址

    "x400" 表示是一个 X.400 地址

   "pref"最喜欢使用的邮件电子

缺省是"internet".

MAILER 类型定义

目的:指定一个电子邮件发送者

例子:MAILER:PigeonMail 2.1

地理类型

TZ类型定义

目的:时区信息

例子:TZ:-05:00

        TZ;VALUE=text:-05:00; EST; Raleigh/North America

        缺省是一个utc-offset值.

GEO类型定义

目的:地理位置信息

例子GEO:37.386013;-122.082932

     CEO 经度;纬度

组织类型

TITLE类型定义

目的:工作位置,工作职能(job title)

例子TITLE:Director\, Research and Development

ROLE 类型定义

目的:公司的职业(occupation)

例子ROLE:Programmer

LOGO类型定义

目的:公司logo,是一个图像信息

例子LOGO;VALUE=uri:图片地址

LOGO;ENCODING=b;TYPE=JPEG:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN         AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm

         ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0

         <…the remainder of "B" encoded binary data…>

说明:TYPE知道图像的格式,ENCODING=b表示是二进制的数据流

      URI表示是一个外部图像对象

AGENT类型定义

目的:指定另外一个人替换他的个人行为

例子:AGENT;VALUE=uri: CID:JQPUBLIC.part3.960129T083020.邮箱地址

         AGENT:BEGIN:VCARD\nFN:Susan Thomas\nTEL:+1-919-555-

         1234\nEMAIL\;INTERNET:主机地址\nEND:VCARD\n

说明:缺省是一个Vcard对象,当时也可是一个URI指定的外部Vcard对象

ORG类型定义

目的:表示一个组织的名称

例子ORG:ABC\, Inc.;North American Division;Marketing

解释类型

CATEGORIES类型定义

目的:vcard应用的分类信息

例子:CATEGORIES:TRAVEL AGENT

      CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY

NOTE 类型定义

目的:对vcard的注释和说明

例子:NOTE:This fax number is operational 0800 to 1715

          EST\, Mon-Fri.

PRODID类型定义

目的:指定创建Vcard对象的产品的ID

例子:PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN

REV类型定义

目的:指定当前Vcard的修改信息

例子:REV:1995-10-31T22:27:10Z

      REV:1997-11-15

SORT-STRING类型定义

目的:指定家庭名称或者其他名称对FN和N类型排序

例子:  FN:Rene van der Harten

        N:van der Harten;Rene;J.;Sir;R.D.O.N.

        SORT-STRING:Harten

        FN:Robert Pau Shou Chang

        N:Pau;Shou Chang;Robert

        SORT-STRING:Pau

        FN:Osamu Koura

        N:Koura;Osamu

        SORT-STRING:Koura

        FN:Oscar del Pozo

        N:del Pozo Triscon;Oscar

        SORT-STRING:Pozo

        FN:Chistine d’Aboville

        N:d’Aboville;Christine

        SORT-STRING:Aboville

SOUND类型定义

目的:指定Vcard的数字声音信息,缺省是指定vcard的name类型的发音信息。

例子:  SOUND;TYPE=BASIC;VALUE=uri:CID:JOHNQPUBLIC.part8.

         19960229T080000.地址

        SOUND;TYPE=BASIC;ENCODING=b:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN         AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm         ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0  <…the remainder of "B" encoded binary data…>

可以用URI指定一个外部声音二进制流

    可以是内置的声音二进制流,ENCODING=b

UID类型定义

目的:指定一个全球唯一的个人或资源标识。

例子:UID:19950401-080045-40000F192713-0052

URL类型定义

目的:指定Vcard 参考的路径。

例子:URL: 网址

VERSION类型定义

目的:指定Vcard使用的vcard规范的版本。

例子:  VERSION:3.0

Security 类型

CLASS类型定义

目的:指定访问Vcard对象的访问分级。

例子:  CLASS:PUBLIC

        CLASS:PRIVATE

        CLASS:CONFIDENTIAL

说明:安全分级需要参考目录服务的访问分级

KEY 类型定义

目的:指定Vcard的公共钥匙值(加密解密是使用)或者是授权认证。

例子:  KEY;ENCODING=b:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQA

         wdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENbW11bmljYX

         Rpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0

         ZW1zMRwwGgYDVQQDExNyb290Y2EubmV0c2NhcGUuY29tMB4XDTk3MDYwNj

         E5NDc1OVoXDTk3MTIwMzE5NDc1OVowgYkxCzAJBgNVBAYTAlVTMSYwJAYD

         VQQKEx1OZXRzY2FwZSBDb21tdW5pY2F0aW9ucyBDb3JwLjEYMBYGA1UEAx

         MPVGltb3RoeSBBIEhvd2VzMSEwHwYJKoZIhvcNAQkBFhJob3dlc0BuZXRz

         Y2FwZS5jb20xFTATBgoJkiaJk/IsZAEBEwVob3dlczBcMA0GCSqGSIb3DQ

         EBAQUAA0sAMEgCQQC0JZf6wkg8pLMXHHCUvMfL5H6zjSk4vTTXZpYyrdN2

         dXcoX49LKiOmgeJSzoiFKHtLOIboyludF90CgqcxtwKnAgMBAAGjNjA0MB

         EGCWCGSAGG+EIBAQQEAwIAoDAfBgNVHSMEGDAWgBT84FToB/GV3jr3mcau

         +hUMbsQukjANBgkqhkiG9w0BAQQFAAOBgQBexv7o7mi3PLXadkmNP9LcIP

         mx93HGp0Kgyx1jIVMyNgsemeAwBM+MSlhMfcpbTrONwNjZYW8vJDSoi//y

         rZlVt9bJbs7MNYZVsyF1unsqaln4/vy6Uawfg8VUMk1U7jt8LYpo4YULU7

         UZHPYVUaSgVttImOHZIKi4hlPXBOhcUQ==

扩展类型
可以定义自己的类型,自己定义的类型需要以“x-”开头

比喻例子中的信息:

X-QQ:000000

X-ICQ:icq

X-WAB-GENDER:2

分享到:
评论

相关推荐

    vcard批量导入 abcvcard

    1. VCard格式介绍: VCard文件通常具有.vcf扩展名,遵循维基媒体基金会的VCard标准。它们以纯文本形式存储,易于阅读和交换。VCard格式支持多个版本,如v2.1、v3.0和v4.0,每个版本都增加了更多的数据字段和功能。 ...

    VCard实现电子二维码.zip

    这个项目的链接指向了一个博客文章,其中可能详细介绍了实现过程、代码示例以及可能遇到的问题和解决方案。在阅读这篇文章时,你可以学习到如何处理VCard数据,如何将这些数据编码为二维码,以及如何在不同平台和...

    Mocor MMI VCard Interface User Guide.doc

    第三章详细介绍了VCard接口提供的所有API函数,每个函数都有其特定的用途,例如: - `VF_createVCard()`:创建一个新的VCard文件。 - `VF_loadVCard()`:从指定路径加载VCard文件。 - `VF_saveVCard()`:将VCard...

    Android pbap、vcard、javaxobex

    它们主要用于共享联系人信息和其他数据,下面将详细介绍这三个概念及其相互关系。 1. **PBAP (Phone Book Access Profile)** PBAP是蓝牙协议栈的一部分,专门设计用于在蓝牙设备之间交换电话簿数据。它允许用户从...

    易语言-通讯录Vcard文件解析例程

    本知识点主要围绕“通讯录Vcard文件解析”这一主题,介绍如何在易语言环境下实现Vcard文件的读取与解析。 Vcard,全称为“Virtual Card”,是一种标准的电子名片格式,广泛用于存储和交换个人联系信息。它以文本...

    PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】 <font color=red>原创</font>

    总结一下,本文详细介绍了如何使用PHP的类`VCardIFL`来生成VCF vCard文件。这个过程涉及到面向对象编程、文件操作和日期处理,对于提升PHP编程技能是非常有价值的。如果你需要在项目中处理个人联系信息的交换,那么...

    android联系人导入

    本教程将详细介绍如何在Android应用中实现联系人的VCF文件导入。 首先,我们需要理解VCF文件的结构。VCF文件包含了每个联系人的详细信息,如姓名、电话号码、电子邮件地址等,每条联系人信息被封装在一个BEGIN:...

    PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】 原创

    本文实例讲述了PHP实现生成vcf vcard文件功能类定义与使用方法。分享给大家供大家参考,具体如下: 前面介绍了php读取vcf文件的方法,这里再来研究一下vcf文件的生成方法。 VCF格式是Windows系统中outlook的名片存储...

    把所有手机联系人导出到一个vcf文件中

    本教程将详细介绍如何将所有手机联系人导出到一个VCF文件中,特别是借助Android-vCard库这一工具。 首先,我们需要了解Android-vCard。Android-vCard是一个开源的Java库,专门设计用来处理vCard数据。它支持vCard ...

    如何从iCloud上导出通讯录.docx

    在这里,我们将为您介绍如何从 iCloud 上导出通讯录到 vCard 文件,并将其导入或分享给其他应用程序或服务。 一、iCloud 通讯录的重要性 iCloud 通讯录是 iCloud 服务的重要组成部分,它允许用户在多个苹果设备...

    使用adb命令向Android模拟器中导入通讯录联系人的方法

    本文将详细介绍如何使用ADB(Android Debug Bridge)命令行工具将通讯录联系人导入到Android模拟器中。 首先,了解ADB命令。ADB是Android开发者常用的工具,它允许开发者在设备或模拟器上执行各种操作,如安装应用...

    VCF手机电话本通讯录导入导出,彻底解决乱码问题

    VCF(vCard Format)是一种常见的电子名片格式,用于存储个人联系信息,如姓名、电话号码、电子邮件地址等。在处理VCF文件时,尤其是在不同设备间导入导出时,可能会遇到乱码的问题,这通常是由于编码不兼容或格式...

    vcf的导入与导出

    本文将详细介绍VCF的结构、内容以及如何进行导入和导出操作。 1. VCF文件格式概述 VCF文件是基于文本的,使用ASCII编码,遵循vCard标准(目前最新版本为v3.0,基于RFC 6350)。每个vCard记录一个联系人的信息,包括...

    VCFtoXLSConverter(VCF转XLS转换器)V1.0英文安装版

    功能介绍 允许您打开文件变量调用格式 (VCF) 到 Excel 文档 (中兑换 XLSX)。 它可以很容易破解,甚至由经验较少的用户。 这是软件的便携式,所以有没有安装包。 它意味着你可以将工具保存到可移动设备

    excel格式通讯录批量导入谷歌安卓android系统智能手机

    本文将详细介绍如何将Excel格式的通讯录批量导入到谷歌安卓Android及iPhone智能手机的方法。此方法适用于拥有大量联系人信息(例如1000人以上)的情况,能够有效节省手动输入联系人信息的时间。整体思路是通过Gmail...

    蓝牙协议介绍,相关的蓝牙协议层的说明

    以下是对蓝牙协议各层及其功能的详细介绍: 1. **底层硬件协议层**: - **链路管理层(LM)**:负责设备之间的链路管理,包括连接建立、维护和断开。 - **基带层(BB)**:处理射频信号的物理特性,包括调制解调...

    vcfpy-master.rar

    1. **README**:这是项目的一个介绍文件,通常包含了如何安装、使用和贡献代码的指南。 2. **LICENSE**:描述了该软件的许可协议,规定了用户可以怎样使用和分发代码。 3. **vcfpy.py** 或 **vcfpy/**:这是库的主要...

    Symbian_OS_Using_Contacts_APIs_v1_0_en

    本文档旨在介绍如何在Symbian OS中使用Contacts APIs v1.0来处理联系人相关的数据。该文档版权属于诺基亚公司,并且包含了与Java相关的商标信息。此外,文档中的所有信息均以“现状”提供,没有任何形式的保证,包括...

    An Introduction to RDF and the Jena RDF API(英文版)

    在本教程中,我们将通过具体的例子来介绍RDF的基本概念和技术细节,主要关注于个人资料的描述,即使用RDF表示的VCARDS。 #### RDF数据模型 RDF的核心是一个简单的数据模型,它基于节点和边的概念来构建。每一个资源...

    6800平台最新电话本流程介绍

    为了实现这些新特性,在代码层面引入了一个宏`CMCC_VCARD_SUPPORT`来区分USIM卡与传统SIM卡的处理逻辑。此外,针对USIM卡的特性和需求,还设计了一种新的数据结构`MMIPB_PHONEBOOK_EXT_CONT_T`来更好地管理这些信息...

Global site tag (gtag.js) - Google Analytics