【发布时间】:2020-05-05 19:42:44
【问题描述】:
我想读取一个 VCF 文件,其中包含 UTF8 字符集中带有波斯字符的名称:
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;=D8=B9=D9=84=D9=89=20=D9=85=D8=B1=D8=AD=D9=85=D8=AA=D9=89;;;
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=D8=B9=D9=84=D9=89=20=D9=85=D8=B1=D8=AD=D9=85=D8=AA=D9=89
TEL;CELL;PREF:123456789
END:VCARD
代码:
file = open('./contact.vcf', 'r', encoding="utf-8")
contacts = []
for line in file:
name = re.findall('FN:(.*)', line)
nm = ''.join(name)
if len(nm) == 0:
continue
data = {'name': nm.strip()}
for lin in file:
tel = re.findall('TEL;CELL;?(?:PREF)?:(.*)', lin)
tel = ''.join(tel)
if len(tel) == 0:
continue
tel = tel.strip()
tel = ''.join(e for e in tel if e.isalnum())
data['phone'] = tel
break
contacts.append(data)
当涉及到波斯名字时,它是空的,它完成了中断 但是一定有更优雅的方式吗?谁能给我指出那个方向?
【问题讨论】:
标签: python string python-3.7 vcf-vcard