.net平台手机管理软件开发(8)—— vCard、vNote、vCalender格式简介

** (八) ** ** vCard ** ** 、 vNote ** ** 、 vCalender ** ** 格式简介 **

vCard 称为电子商务卡片,主要用于记录通讯薄的联系人信息等,方面不同设备之间的数据交换。自笔者的 M55 手机中,可以发送一条短信到对方,其中包含了 vCard 格式的联系人信息,西门子其他型号的手机可以接收解码存储。另外通过手机红外线传输到电脑上的联系人也是用的 vCard 格式。如果安装了 Outlook ,则可以直接打开 vCard 并看到其包含的信息。下面主要简要介绍一下 vCard 格式,其他 vNote 、 vCalender 格式和 vCard 相近,就不再赘述。更详细的资料请参考 vCard Specification ,在笔者主页有相关下载。

关于 vCard 、 vNote 、 vCalender 的 .Net 简单编码解码器请参阅 SIEMENS SUPPORT TOOL 源代码中的 IrMC 部分。

** vCard Object ** ** ( vCard ** ** 对象) **

一个 vCard 数据流可以包含一个或者多个 vCard Object 。在数据流中一个 vCard Object 定义为以“ BEGIN:VCARD ”开始并以“ END:VCARD ”结束的数据。如果只有到达了数据流尾都没有出现“ END:VCARD ”,则整个 vCard Object 包含从“ BEGIN:VCARD ”开始到数据流结束的地方。

** vCard Property ** ** ( vCard ** ** 属性) **

vCard 是一个或多个 Property 的集合。一个 Property 是唯一命名的值。一系列的 Property 可以在 vCard 中成为一组。

vCard Property 的格式如下:

PropertyName[‘;’ PropertyParameters]’:’PropertyValue

** 注 ** :

1、 PropertyName 及 PropertyParameters 不区分大小写。

2、 PropertyParameters 可选,可以为零个或多个,与 ProperyName 以分号相隔,与 PropertyValue 以冒号相隔。

3、 vCard 可以分多行呈现。由于在这个软件里面应用得不多,所以笔者也没有钻研具体实现方法。可以参考 vCard Specification 。

例如 TEL;HOME;+86111222333 其 PropertyName 为 TEL , PropertyParameters 为 HOME , PropertyValue 为 +86111222333 。

** Encoding ** ** (编码) **

vCard 默认的编码方式是 7-Bit 。默认编码方式可以使用 ENCODING 属性参数( Property parameter )改变。其值为可以为 BASE64 ; QUOTED-PRINTABLE ; 8BIT 。这个参数可以用在任何的 Property 里。

例如:

X-ESI-CATEGORIES;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E5=AE=B6=E4=BA=BA

下面简要说明 QUOTED-PRINTABLE 编码方式,更为详细的资料请参考相关文档:

ASCII 可显示字符基本保持不变。 Unicode 字符或者 UTF8 编码字符使用等号加其对应 16 进制代码表示。例如上述 CHARSET 为 UTF8 的字符 =E5=AE=B6=E4=BA=BA 对应的 UTF8 编码 0xE5 , 0xAE , 0xB6 代表中文“家”,其他的代表“人”。另外如果其中有可显示 ASCII 码,保持原样输出。

例如 ENCODING=QUOTED-PRINTABLE:Home=E5=AE=B6People=E4=BA=BA

解码后为“ Home 家 People 人”。

** Character Set ** ** (字符集) **

默认的字符集是 ASCII 。可以通过 CHARSET 参数改变默认的字符集。其参数可取的值为所有 IANA(Internet Assigned Numbers Authority) 注册的字符集。这个参数可以用于任何 Property ,但某些 Property 并不起作用。

例如:

X-ESI-CATEGORIES;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E5=AE=B6=E4=BA=BA

** vCard ** ** 例子: **

BEGIN:VCARD

VERSION:2.1

X-IRMC-LUID:1017646

X-ESI-CATEGORIES;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E5=AE=B6=E4=BA=BA

N:test

ADR:;;Street;city;;610000;country

ORG:company

TEL;HOME:123456

TEL;WORK:123456

TEL;CELL:123456

TEL;FAX:123456

TEL;FAX;HOME:123456

EMAIL;INTERNET:[email protected]

EMAIL;HOME;INTERNET:b@g

URL:http

BDAY: 1985-04-23

END:VCARD

Published At
Categories with Web编程
Tagged with
comments powered by Disqus