Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Vcard und Charset Probleme

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.04.2003
    Beiträge
    15

    Vcard und Charset Probleme

    hallo
    Ich habe ein keines Problem mit vcards. Ich schreibe einen kleinen php-script, der vcards produziert. Nun, der skript ist an und für sich nicht das problem, ich habe einfach probleme, den programmen die die vcard lesen mitzuteilen, dass ich utf-8 als charset brauche.
    ich habe auch schon
    http://www.ietf.org/rfc/rfc2426.txt
    studiert aber irgendwie begreife ich nicht, wie ich das problem nun lösen soll. irgendwie mit den mime-type und dem encoding, aber wo muss das stehen im dokument?

    Ich habe unter
    http://www.ambassadorbigband.ch/back...ripts/test.php
    ein exemplar einer vcf datei.

    Noch als information: kaddressbook hat keine probleme, NUR outlook will einfach keine utf-8 zeichansätze in vcards akzeptieren!!!!!! (die datei zum downloaden kann outlook nicht mal öffnen)

    Danke schon mal im voraus, ich reiss mir noch die haare aus, es will einfach nicht kalppen und ich suche doch schon sooooo lange

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von Säck
    studiert aber irgendwie begreife ich nicht, wie ich das problem nun lösen soll. irgendwie mit den mime-type und dem encoding, aber wo muss das stehen im dokument?
    Ich denke in deinem Fall müsste das im Contenttype Feld stehen, den dein Script sendet.
    Also du sendes ja wahrscheinlich bereits als MIME Type text/vcard (oder was auch immer da der korrekt Typ ist) und ich nehme mal an
    "text/vcard;charset=utf-8" wäre dann die Lösung zu deinem Problem.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    24.04.2003
    Beiträge
    15
    Ja, das habe ich versucht, und ich glaube das funktioniert auch. Ich glaube ich habe mich falsch ausgedrückt, da ich schon den ganzen Abend an diesen Vcards herumgedüftelt habe.
    Wenn ich die VCards im Editor in Windows öffne erkennt der editor zurecht, dass der zeichensatz utf-8 ist und alle sonderzeichen werden richtig dargestellt. Wenn ich aber die vcard z.b. im outlook öffnen möchte, habe ich das problem, dass es die zeichen nicht richtig darstellt.

    Aus den VCard specs:
    Character Set
    The default character set is ASCII. The default character set can be overridden for an individual property value by using the ?CHARSET? property parameter. This property parameter may be used on any property. However, the use of this parameter on some properties may not make sense.
    Any character set registered with the Internet Assigned Numbers Authority (IANA) can be specified by this property parameter. For example, ISO 8859-8 or the Latin/Hebrew character set is specified by:
    ADR;CHARSET=ISO-8859-8:...
    Some transports (e.g., MIME based electronic mail) may also provide a character set property at the transport wrapper level. This property can be used in these cases for transporting a vCard data stream that has been defined using a default character set other than ASCII (e.g., UTF-8).
    Nun gut, ich habe also einmal die Vcard im ISO-8859-1 zeichnsatz codiert und just -- Windows stellt die sonderzeichen richtig dar ... aber leider kann ich kontact nicht mitteilen welchen zeichensatz ich brauche: hier die vcard:

    Code:
    BEGIN:VCARD 
    VERSION:2.1 
    FN;CHARSET=ISO-8859-1:Ändi Hügi
    N;CHARSET=ISO-8859-1:Hügi;Ändi;
    TEL;WORK:032 032 23 25
    TEL;CELL:021 303 23 23
    EMAIL;INTERNET:whatever@whatever.com
    BDAY:19813330
    ADR;HOME:;;ob.drumgass 12;Zurich;;2333
    END:VCARD
    Wie kann ich dem Programm das die VCard öffnet mitteilen, welchen Zeichensatz es zu verwenden hat. Ich begreife das einfach nicht.

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    So wie ich den zitierten Text verstanden habe hat man zwei Möglichkeiten.
    1) Das Transportmedium gibt einen Codec bekannt, dann kann alles in der darauffolgenden vCard in diesem Encoding sein, also zB über den Content-Type bei HTTP oder Mails

    2) Die vCard ist selbst ASCII, durch Angabe der CHARSET Eigenschaft kann man bestimmte Teile in einem anderen Encoding verfassen.

    In deinem Fall sieht es so aus, als ob du (1) nicht zur Verfügung hast (was mich ein bischern wundert, benutzt du PHP als lokales Script?), weil das Filesystem bzw der Zugriffsmechanismus keine Metadaten liefern und Outlook zu dämlich für eine Autoerkennung ist.

    Bleibt dir also nur Möglichkeit (2), also die Datei in ASCII abzuspeichern und Felder nötigenfalls unter Verwendung der CHARSET Angabe in einer anderen Kodierung.

    Wie sieht denn ein entsprechender Contact aus, wenn er aus Outlook ins vCard Format exportiert wurde?

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    24.04.2003
    Beiträge
    15
    Genau
    Ich versuche schon die ganze Zeit, den Programmen mit der 2. Methode klarzumachen, welche Teile wie encodiert sind. Aber irgendwie klappts weder wenn ich vom outlook nach kontact (kaddressbook) exportiere und vice versa.
    Outlook besteht auf ASCII oder iso-8859-1??(ich bin mir nicht ganz sicher, welches zeichensatz Windows verwendet, aber ich kann die Files in gentoo öffnen und die sonderzeichen sind ok. ich glaube das ist iso-8859-1. ist das daselbe wie ascii?)
    und Kaddressbook besteht auf UTF-8 (was ja auch zum standart bei vcard 3.0 erklärt wurde, was aber microsoft irgendwie egal ist :-)

    Wenn ich einen contact aus outlook exportiere sieht die vcard folgendermassen aus:

    Code:
    BEGIN:VCARD
    VERSION:2.1
    N:Hügli;Ändi
    FN:Ändi Hügli
    REV:20041019T170053Z
    END:VCARD
    Ohne irgendeine Charset Angabe. Ich habe auch schon versucht die Charset Angabe manuel einzufügen (ascii und iso-8859-1) doch auch kaddressbook weigert sich strickte, die Sonderzeichen richtig darzustellen.

    Ich frage mich, ob einfach beide programme (outlook wie auch kaddressbook) ganz einfach die Charset angaben ignorieren. Leider bin ich nicht gut genug im programieren um im source-code von kaddressbook zu forschen :-(
    open-source ist ja schon cool, man kann fehler selbst beheben. Leider bin ich das problem --> anfänger :-)

    Danke

  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Ich hab mich mal in die Details von KDE's vCard Parser gewagt

    Soweit ich gesehen habe, wird das CHARSET Property schon erkannt, aber nur der Wert utf-8 verwertet.

    Du könntest also probieren, die vCard selbst ASCII oder Latin1 (ISO-8859-1) zu kodieren und den Namen unter Verwendung von CHARSET als utf-8

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  7. #7
    Registrierter Benutzer
    Registriert seit
    24.04.2003
    Beiträge
    15
    ah, so sieht das also aus.

    Ja dann wird mir alles klar. Höchswahrscheinlich geschieht genau dasselbe bei windows (outlook) nur dass dort utf-8 nicht verarbeitet wird. :-) Somit habe ich also einfach das Problem, dass sich vcards im Moment nur schlecht zwischen den Systemen austauschen lassen.
    Ich könnte auch konsequent auf vcards 3.0 setzten. Soweit ich weiss, gibt es dort die CHARSET angabe nicht mehr, und man ist quasi verpflichtet alles in UTF-8 zu kodierren. Wird aber von Outlook auch nicht recht interpretiert. Aber wenn sie VCards 3.0 irgendwann mal in outlook integrieren, ist zu hoffen, dass utf-8 unterstützt wird.

    Wo genau finde ich den parser der kde vcards? Ich möchte da auch mal einen Blick reinwerfen. Man kann nie auslernen.

    Vielen Dank für deine Mühe, ich weiss das zu schätzen.

  8. #8
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    [QUOTE=SäckJa dann wird mir alles klar. Höchswahrscheinlich geschieht genau dasselbe bei windows (outlook) nur dass dort utf-8 nicht verarbeitet wird. :-) Somit habe ich also einfach das Problem, dass sich vcards im Moment nur schlecht zwischen den Systemen austauschen lassen.
    [/quote]
    Wahrscheinlich ließe sich der KDE vCard Parser leicht so erweitern, ISO-5589-1/Latin1 zu erkennen und zu benutzen.

    Wo genau finde ich den parser der kde vcards? Ich möchte da auch mal einen Blick reinwerfen. Man kann nie auslernen.
    kdelibs/kabc/
    und
    kdelibs/kabc/vcardparser

    zB über http://webcvs.kde.org/
    einsehbar

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •