2013-03-07 2 views
3

Google의 연락처 내보내기 기능에서 vcf 파일을 받았습니다. UTF-8로 인코딩되었지만 WinMobile 전화는 win1251 문자가 연락처 북으로 가져 오기를 기대합니다. win1251에 그것을 recoded하고 vObject 라이브러리를 사용하여 파일을 구문 분석하려고했습니다. 결과로 얻은 것은 일부 유니 코드로 올바르게 인코딩 된 필드가 혼합 된 것이었고 일부는 "?????"로 대체되었습니다. 본문. 내가 찾을 수없는 것은 내 요구에 맞게 인코딩()/디코딩() 패치의 일종을 적용해야 소스 코드의 장소여러 개의 vCard를 파이썬으로 파싱

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 ??????? 

입니다 : 예를 들어 나는 그런 접촉의 prettyPrint 포함 . 누군가 나를 도울 수 있습니까?

+0

당신이 어떤 흐름을 겪고 있는지 약간 혼란 스럽습니다. 전화 -> google -> 코드를 사용하고 있습니까, 아니면 단어를 사용하기 때문에 google -> 코드 -> 전화를하고 있습니까? – tmthydvnprt

답변

0

readOne (또는 사용하는 구문 분석 기능)에 입력 할 때 유니 코드인지 확인하십시오. Windows-1251 코딩으로 돌아가려면 vcard를 구문 분석 한 후 result.encode('cp1251') 또는 codecs.open(filename, 'w', 'cp1251').write(result)을 사용하십시오.

당신이 어떤 흐름을 겪고 있는지 약간 혼란 스럽습니다. phone -> google -> code, 또는 expects, 이라는 단어를 사용하고 있기 때문에 google -> code -> phone을 수행하고 있습니까?

answer은 전환에 도움이 될 수 있습니다.

관련 문제