我使用 Vobject 模块。
我想读取一个 VCF 文件,其中包含 UTF8 字符集中带有德语变音符号的名称:
BEGIN:VCARD
VERSION:2.1
FN:Some Name
N:Name;Some;;;
ADR;WORK;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;;=49=6D=20=4D=C3=BC=68=6C=65=6E=62=72=75=63=68=20=32=33;=4B=C3=B6=6E=69=67=73=77=69=6E=74=65=72;=4E=52=57;=35=35=35=35=35;
END:VCARD
编码:
fp = open("vcf/%s.vcf" %(name), "r")
content = fp.read()
fp.close()
v = vobject.readOne(content)
v.prettyPrint()
例如:
König 读作 K?nig
Mühle 读作 M?hle
我想到的唯一解决方案,
- 读取文件
- 查找变音符号 utf8 代码
- 替换 utf8 代码
- 解析 VCF 内容
- 将 utf8 代码替换为 umlaut utf8 代码向后
但是一定有更优雅的方式吗?谁能指出我的方向?
问候,
CK