蓝牙下电话本过程中vCard格式异常数据的解析

本文介绍了在蓝牙交换电话本过程中遇到的vCard格式异常情况。当手机返回的vCard信息不符合规范,比如Name字段出现多条信息时,如何按照vCard格式规则解析并提取有效数据。在示例中,Name字段错误地包含了三个部分,而正常情况下应只有一个。解析过程涉及查找特定符号来确定属性名、属性参数和属性值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vCard数据格式,如下Spec描述所示,每行的格式为:属性名 [;该属性的参数]:值

因此,拿到一段vCard中的一行数据时,解析的过程如下:

1.先找到一行的“:”或“;”,符号之前的是这一行的PropertyName值;

2.若先找到的是“:”,则后面跟的就是PropertyValue;

3.若先找到“;”,则后面跟的是辅助信息PropertyParameters,如编码方式等;

3.1.继续向后找到“:”,则后面跟的就是PropertyValue;

4.最后找到这一行的结尾CR+LF,即“回车符”+“换行符”;

 

【vCard反馈格式不规范的情况处理】

手机异常时,下载电话本时,手机返回了一条异常vCard信息如下所示,Name这一栏(N)在正常情况下,只应该存在红色区域,但是,手机却在一行送出了三条Name信息(红+绿+蓝)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值