【问题标题】:vobject read vcf files containing german umlautsvobject 读取包含德语变音符号的 vcf 文件
【发布时间】:2013-09-10 12:14:24
【问题描述】:

我使用 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

【问题讨论】:

  • 你应该放一些代码,以便我们可以尝试帮助like explain here
  • 我没有包含一些代码,因为我认为它没有帮助。目前我正在计划如何去做。

标签: python string python-2.7 vcf-vcard


【解决方案1】:

我找到了解决方案。问题是,Python 需要将 Stringstreams 解释为 UTF-8。
内置函数

unicode("ÄÖÜ", "utf-8")

变音符号按预期打印。

【讨论】:

    猜你喜欢
    • 2016-07-14
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    相关资源
    最近更新 更多