【本文转自互联网,如有涉及侵权等伤害到您的利益,请及时告知,本人将马上删除】
最在网络上面查找关于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

关于vcard通讯录格式解析-微信二维码解析相关推荐

  1. Java如何解析个人或他人微信二维码内的信息

    这两天对微信二维码比较感兴趣,所以就花了点时间学习了一下,下面我将先介绍一下如何解析微信二维码内的信息. 直接上代码: import java.awt.image.BufferedImage; imp ...

  2. python 二维码解析

    1.环境 mac brew install zbar pip install pyzbar pip install opencv-pythoncentos8 yum install zbar-deve ...

  3. js 将微信二维码转为url,qrcodeJs解析二维码,qrcode.decode is not a function报错

    前言 工作中遇到的需求:用户上传相册中选中的图片,判断这个图片里的二维码是不是微信二维码,如果是则上传到服务器:不是,则提示用户重新上传. 百度了下,qrcode.js是一个用于生成二维码的 Java ...

  4. Opencv之微信二维码检测与解析

    简介 微信二维码检测器是由微信计算机视觉团队(WeChatCV)提供的一个高性能.轻量级的二维码检测与解码库.它已广泛应用于腾讯的各种应用,包括微信.微信.QQ.QQ浏览器等.微信二维码检测仪有四个主 ...

  5. [android源码下载索引贴】微信+二维码那都不是事......

    微信: Android 简单仿微信朋友圈布局2014/09/02 http://www.eoeandroid.com/thread-542738-1-1.html [代码片段] 高仿摇一摇效果 201 ...

  6. java微信二维码登录

    1.注册 微信开放平台:https://open.weixin.qq.com 2.邮箱激活 3.完善开发者资料 4.开发者资质认证 准备营业执照,1-2个工作日审批.300元 5.创建网站应用 提交审 ...

  7. Java支付宝二维码支付和退款,微信二维码支付

    在蚂蚁金服开发平台下载demo 打开 TradePayDemo 项目,里面的main可以直接运行,在配置文件zfbinfo.properties中改为自己支付宝的信息 # 支付宝网关名.partner ...

  8. 微信二维码支付快速入门

    目录 一.二维码生成插件qrious 二.HttpClient 三.微信扫码支付 1.申请步骤 2.开发文档 四.入门Demo 1.工程搭建 2.myStudy-pay-interface 3.myS ...

  9. 用女朋友动态图做微信二维码,小白都会

    一.准备的东西:一台电脑,一个网站(https://cli.im/deqr/),两张图片(一张动态图,一张微信二维码) 二.打开cmd,输入命令pip install myqr 转完后,输入cd de ...

  10. 如何给CSDN博客添加个人微信二维码或自定义栏目

    在使用CSDN的过程中,一般人都不怎么会去关注私信或留言的,因此为了更加有效及时地与作者或网友进行沟通,可以将自己的邮箱地址或者微信二维码添加到自定义栏目中,现在新版的CSDN好像只能添加一个自定义栏 ...

最新文章

  1. .net知识和学习方法系列(七)string类型
  2. main_loop()函数解析(1)
  3. Redis-11使用 watch 命令监控事务
  4. (六)6-3Mysql操作据二
  5. mysql select查询2个表_mysql – 为SELECT查询合并2个表?
  6. linux shell之字符串的更具字符分割和删除字符和文本内容的删除以及内容是否匹配成功
  7. Sgen.exe: Speed up XmlSerializer's Startup Performance [.NET 2.0, XML Serialization]
  8. matlab 解非齐次方程组,各位看一下为什么这里的LU解不出非齐次线性方程组?
  9. java api教程_Java api 入门教程 之 JAVA的文件操作
  10. AWStats日志分析部署
  11. The rxfastforest algorithm case of kaggle
  12. Access数据库使用DateAdd函数更新日期信息
  13. 我的青春谁做主——经典台词之人生哲理
  14. android设备刷机精灵,使用刷机精灵给安卓手机刷机教程
  15. python怎么让图片旋转45度_python – 有没有办法将matplotlib图旋转45度?
  16. lua菜鸟教程_lua经典学习教程.pdf
  17. 一个关于容抗与感抗的实验
  18. canvas 将两张图片叠加
  19. android重力传感器横竖反,Android手机在哪里设置重力传感器(转向屏幕)?
  20. 一篇文章带你认识数学建模中的二维插值

热门文章

  1. 跳跃游戏 改 dfs
  2. 使用Hibernate中save方法时由于设置的id的增长方式为assigned报错处理和
  3. 元气骑士 自建服务器,元气骑士远程联机步骤教程一览
  4. 计算天数(函数)(C语言实现)
  5. ios 中h5网页跳到第三方后回到项目字体变大
  6. Linux系统工具sar查看主机性能指标(内存、CPU、IO)
  7. html图片闪烁设置,HTMLCSS基础-图片按钮闪烁解决方案
  8. linux虚拟机双显卡,Kali Linux 2.0 安装 NVIDIA显卡驱动实现双显卡(联想笔记本)
  9. Android网络框架-Volley实践 使用Volley打造自定义ListView
  10. oracle 19c em,Oracle 19C EM