3

Googleの連絡先エクスポート機能からvcfファイルを取得しました。UTF-8でエンコードされていましたが、私のWinMobile電話では、win1251文字が連絡先帳にインポートされると想定しています。私はそれをwin1251に再コーディングし、vObjectライブラリを使用してファイルを解析しようとしました。その結果、フィールドが混在していて、その一部はUnicodeに正しくエンコードされており、一部は「?????」に置き換えられていました。文章。たとえば、そのような連絡先のprettyPrintを含めます。

 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()パッチを適用する必要があるソースコード内の場所です。誰かが私を助けてもらえますか?

4

1 に答える 1

0

readOne(または使用している解析関数に)渡すときは、入力がユニコードであることを確認してください。Windows-1251 コーディングに戻りたい場合は、vcard を解析した後に or を使用しresult.encode('cp1251')ますcodecs.open(filename, 'w', 'cp1251').write(result)

どのような流れをたどっているのか、少し混乱します。あなたはやっていますか、それとも期待phone -> google -> codeという言葉を使っているので、やっていますか?google -> code -> phone

この回答は、変換に役立つ場合があります。

于 2015-05-02T14:32:58.577 に答える