用Python解析多个vCard

2024-04-24 11:00:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个来自谷歌联系人导出功能的vcf文件。 它是用UTF-8编码的,但我的WinMobile电话希望win1251字符导入contactbook。 我将它重新编码到win1251中,并尝试使用vObject库解析该文件。 结果,我得到的是一个混合字段,其中一些字段被正确编码为Unicode,而有些字段被替换为“???”文本。 例如,我包括这样一个联系人的预打印:

 VCARD
    TEL: +7812000000
    params for  TEL:
       aKey TYPE [u'CELL']
    TEL: +7921000000
    params for  TEL:
       aKey TYPE [u'HOME']
    URL: http\://www.diamantstroy.spb.ru
    X-ABLABEL: _$!<HomePage>!$_
    N:  Alexei  ??????? 
    VERSION: 3.0
    ORG: [u'\u041e\u041e\u041e \u0414\u0438\u0430\u043c\u0430\u043d\u0442-\u0421\u0442\u0440\u043e\u0439-\u0421\u0435\u0440\u0432\u0438\u0441']
    FN: Alexei ???????

我找不到的是在源代码中我应该应用某种encode()/decode()补丁来满足我的需要。 有人能帮帮我吗?在


Tags: 文件编码fortype联系人paramstelu0430
1条回答
网友
1楼 · 发布于 2024-04-24 11:00:32

当您将输入传递给readOne(或您正在使用的任何解析函数)时,请确保输入是unicode。如果您想回到Windows-1251编码,在解析vcard之后使用result.encode('cp1251')或{}。在

它有点混乱,你要通过什么流动。你在做phone -> google -> code, 或者因为你用了expects, 你在做google -> code -> phone?在

answer可能有助于转换。在

相关问题 更多 >