我使用的是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
我想到的唯一解决方案,
- 阅读文件
- 寻找变音uflaut utf8代码
- 更换utf8代码
- 解析VCF内容
- 用umlaut utf8代码向后替换utf8代码
但必须有更优雅的方式吗?有人能指出我这个方向吗?
的问候,
CK
答案 0 :(得分:0)
我找到了解决方案。问题是,Python需要将Stringstreams解释为UTF-8 内置功能
unicode("ÄÖÜ", "utf-8")
变音符号按预期打印。