【本文转自互联网,如有涉及侵权等伤害到您的利益,请及时告知,本人将马上删除】

最在网络上面查找关于vcard格式的技术资料,发现中文的资料很少,只能阅读vCard MIME

Directory Profile(rfc-2426)翻译它需要花太多的时间,现在把自己的理解做下记录,

希望对大家有帮助

VCard 数据格式的标识符是VCARD

l 预定义的值类型:uri, date, date-time, float

l 新增加的值类型:binary, phone-number, utc-offset and vcard value

l 预定义的类型:SOURCE, NAME, PROFILE, BEGIN, END.

l 新增加的类型: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

l 预定义的参数:ENCODING, VALUE, CHARSET, LANGUAGE, CONTEXT.

l 新增加的参数: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:http://

URL:单位主页

EMAIL;PREF;INTERNET:guodc@139.com

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:http://www.abc.com/pub/photos/jqpublic.gif
       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:;;街道地址;深圳;广东;433330;中国
         组合由一下部分顺序的组成:
 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:jqpublic@xyz.dom1.com
     EMAIL;TYPE=internet:jdoe@isp.net
     EMAIL;TYPE=internet,pref:jane_doe@abc.com
 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:http://www.abc.com/pub/logos/abccorp.jpg
 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.xyzMail@host3.com 
 AGENT:BEGIN:VCARD/nFN:Susan Thomas/nTEL:+1-919-555-
          1234/nEMAIL/;INTERNET:sthomas@host.com/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.xyzMail@host1.com
         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:http://www.swbyps.restaurant.french/~chezchic.html

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:38394246

X-ICQ:icq

X-WAB-GENDER:2

转自:http://blog.sina.com.cn/s/blog_4dde376501018aeo.html

关于vcard通讯录格式解析相关推荐

  1. vcf通讯录格式解析

    工具类 package hd.com.xposeddemo.utils; import java.io.ByteArrayOutputStream; import java.io.Unsupporte ...

  2. vcard通讯录格式及手机名片制作

    一.VCard数据格式 BEGIN:VCARD VERSION:4.0 N:Gump;Forrest;;; FN:Forrest Gump ORG:Bubba Gump Shrimp Co. TITL ...

  3. java手机通讯录格式转换_xml转换成vcf 魅族手机通讯录Contact.xml备份在flyme上的恢复(Java/C#实现xml转vCard)...

    xml转换成vcf 魅族手机通讯录Contact.xml备份在flyme上的恢复(Java/C#实现xml转vCard) 分类:杂谈| 发布:佚名| 查看: | 发表时间:2014/6/10 由上一篇 ...

  4. Python 将TXT格式转换为手机通讯录格式vcf

    import os import tkinter as tk from tkinter import filedialog from tkinter import messagebox#获取需要转换的 ...

  5. 手机号码转码_通讯录格式转换集锦

    通讯录格式转换集锦 随着大家生活水平的提高,更换手机已经是一件十分平常的事 情,新手机功能越来越强大, 功能越来越多,体验新手机的心情当然 是愉悦的,可是通讯录的转移和编辑(比如用 EXCEL 来编辑 ...

  6. vCard通讯录(vcf文件)转excel表格的方法

    vCard通讯录文件也是vcf文件,一般用来导出导入手机通讯录,vcf文件基本上手机都通用都支持的,很多人都是用这个格式来备份通讯录.但是vcf文件除了手机通讯录,在其他地方查看起来不太方便,这时候我 ...

  7. 转:YUV RGB 常见视频格式解析

    转: http://www.cnblogs.com/qinjunni/archive/2012/02/23/2364446.html YUV RGB 常见视频格式解析 I420是YUV格式的一种,而Y ...

  8. 【Android RTMP】音频数据采集编码 ( AAC 音频格式解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码配置信息 )

    文章目录 安卓直播推流专栏博客总结 一. AAC 音频格式解析 二. FLV 音频数据标签解析 1. 分析 FLV 格式中的 AAC 音频格式数据 2. AAC 音频特殊配置 3. AAC 音频数据标 ...

  9. java 解析日期格式_日期/时间格式/解析,Java 8样式

    java 解析日期格式 自Java 几乎 开始以来,Java开发人员就通过java.util.Date类(自JDK 1.0起)和java.util.Calendar类(自JDK 1.1起 )来处理日期 ...

最新文章

  1. Linux系统启动任务的写法
  2. ubuntu下pytorch
  3. Docker使用自定义网络实现容器互联
  4. iOS macOS的后渗透利用工具:EggShell
  5. 研究电子计算机的想法,电子计算机发明于哪一年 1946年在美国问世(为研制导弹而生)...
  6. (五)资源优化 (经典性能优化解决方案)
  7. 压缩js和css, IIS开启Etags, IIS开启Gzip
  8. 基本BASH SHELL脚本命令——切换目录以及处理文件和目录的基本知识
  9. 计算机硬件组装教学设计教案,计算机硬件的组装教学设计
  10. WPF中INotifyPropertyChanged用法与数据绑定
  11. HTML5基础网页设计(加代码CSS)
  12. 使用Bitmap font generator工具生成fnt文件
  13. 如何修改云服务器连接密码错误,如何修改云服务器连接密码
  14. 中国工商注册企业统计数据
  15. github等网站访问不稳定的几种改善办法
  16. 【scratch案例教学】scratch中秋佳节 scratch创意编程 少儿编程 边玩边学 小朋友这样贺中秋
  17. 银行业务--负债业务
  18. linux配置文件密码加密工具,Linux下利用openssl对文件进行加密和解密
  19. 数据分析您需要一个现代化的数据仓库
  20. Android开发之保存图片到相册的三种方法详解

热门文章

  1. 【记录】Word 2021|编号缩进调整
  2. 向量和矩阵的点乘和叉乘
  3. [转] 移动信息网商业模式讨论会-文字实录
  4. 我和计算机做游戏课后反思,小班游戏我和风儿做游戏教案反思
  5. 图深度学习连载八,入门教程之简化图卷积模型
  6. 想做好一个程序猿 先建好身 瘦人同样可以练出肌肉
  7. 【APM】开发环境配置
  8. 数字电路硬件设计系列(七)之泄放电路设计
  9. 苹果cms请求接口上传异常是怎么回事
  10. 基于FPGA的超声波信号发生器设计:程序和电路原理图