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:
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
相关推荐
4. 格式校验:转换完成后,确保新生成的VCard文件符合VCard规范,所有联系人信息都能正确解读。 在实际操作中,我们可能会遇到一些挑战,例如XML文件的格式差异、数据编码问题、特殊字符的处理等。为了解决这些问题...
1. **兼容性**:确保程序能处理不同版本的vCard,因为vCard规范经历了多次更新,如v2.1、v3.0、v4.0等,格式略有差异。 2. **错误处理**:vCard文件可能存在语法错误或不完整,解析器需要有良好的错误处理机制,确保...
- **独立性**:vCard规范定义了一种独立于特定目录服务或协议的格式,这意味着它可以被任何支持该格式的应用程序所使用。 - **兼容性**:为了确保与现有标准的兼容性,vCard规范参考了X.520和X.521目录服务推荐的...
2. **VCard生成**:程序将这些数据转化为符合VCard规范的文本文件,也就是.vcf文件。 3. **二维码编码**:使用QR码库(如ZXing或qrcode.js)将VCard数据编码为二维码图像。二维码的设计使得它可以存储大量的信息,...
vCard规范由互联网邮件协会(Internet Mail Consortium, IMC)和互联网工程任务组(Internet Engineering Task Force, IETF)共同维护,并且随着技术的发展不断更新。 1. vCard 定义与版本发展 - vCard 2.1 是最...
随着vCard标准的发展,新版本可能会引入新的字段或特性,因此及时更新库以支持最新的vCard规范是必要的。 此外,对于那些不熟悉vCard标准的开发者,建议深入学习vCard的官方文档,理解其数据结构和字段含义,以便更...
### vCard 2.1 规范说明 #### 一、引言 vCard 是一种电子名片格式,它被设计用于在不同的应用程序或系统之间进行数据交换。此规范定义了一个适用于不同传输方式(如文件系统、点对点异步通信、有线网络传输或无线...
VCard 2.1与3.0是两个重要的版本,在兼容性、功能及编码规范上存在显著差异。 #### VCard 3.0规范特点 - **QUOTED-PRINTABLE编码移除**:VCard 3.0中去除了QUOTED-PRINTABLE内联编码方式,只允许使用[RFC2047]中的...
3. **转换字段格式**:根据vCard 2.1的规范,将vCard 3.0中的字段格式化为vCard 2.1支持的格式。 4. **创建vCard 2.1对象**:使用`vobject.vCard()`创建一个新的vCard 2.1对象,并填充处理过的字段。 5. **写入...
总的来说,"javaWeb实现二维码名片生成"这个项目涵盖了JavaWeb开发、二维码编码解码、VCard规范以及HTTP响应处理等多个知识点,是学习和实践这些技能的好机会。通过这个项目,你可以深入理解如何将后端逻辑与前端...
解析这些字段时,需要按照Vcard规范来拆分和处理。 4. **创建数据结构**:解析出的联系人信息应存储在一个合适的数据结构中,如列表或字典,以便后续使用。易语言提供了丰富的数据类型,如“列表”和“记录”,可以...
2. **VCard规范**:转换过程中需遵循VCard格式的标准,例如VCard 3.0或4.0版本的规范,确保生成的.vcf文件符合规定,能被各种软件正确读取。 3. **文件结构**:VCard文件是以XML或纯文本为基础的,具有固定的结构,...
RFC6350是当前版本的VCARD规范,它定义了如何用文本形式表示这些信息,以便在网络上传输和处理。 `ical.js`这个JavaScript库的目的是帮助前端开发者轻松地在浏览器环境中解析和操作这些数据格式。它的功能可能包括...
这通常涉及到解析CSV文件中的姓名、电话号码、电子邮件地址等字段,并按照vCard规范重新组织这些信息,生成可以被Android系统识别的.vcf文件。转换过程中,软件可能会自动处理字符编码、字段映射和格式问题,确保...
#### 一、VCard概述与标准规范 - **标准编号:** IETF发布的RFC 6350标准文档定义了vCard数据格式,该文档取代了之前的RFC 2425、2426和4770,并对RFC 2739进行了更新。 - **发布机构:** 由Internet Engineering ...
解析器遵循vCard的特定版本规范(如v2.1, v3.0或v4.0),确保数据的正确性。 3. **类库API**:提供了丰富的API供开发者调用,包括创建新的vCard,添加、修改和删除联系人属性,以及读写vCard文件。这些API通常具有...
根据 VCard 2.1 规范的版权声明,本规范受 IBM、Lucent Technologies 和 Siemens 的版权保护。尽管如此,公众可以自由复制和分发该文档,条件是必须保持文档完整性且不得修改原文,并且需要保留版权和许可声明。此外...
枚举使得代码更加规范,避免了错误的硬编码值,同时提高了代码的可维护性。 **三、API函数** 第三章详细介绍了VCard接口提供的所有API函数,每个函数都有其特定的用途,例如: - `VF_createVCard()`:创建一个新...
org-vcard致力于完全符合vCard 4.0( RFC 6350 ),3.0( RFC 2426和RFC 4770 )和2.1规范。 新的联系人样式: tree 。 org-vcard为Org联系人引入了一种新的样式,称为tree 。 下面有更多详细信息。 通过Emacs的...
PBAP定义了服务发现、连接建立、数据传输以及断开连接等操作的规范。在Android中,PBAP服务通常通过BluetoothAdapter和BluetoothServerSocket类来实现,使得开发者可以创建服务器端或客户端应用来处理PBAP通信。 2....