2010-06-10 6 views
9

spezifisch der CN (allgemeiner Name) -Parameter, z.B.können/sollten iCal-Eigenschaftsparameter entkoppelt werden?

VERANSTALTER; CN = John Doe, Eng: mailto: [email protected]

Der RFC ist vage dazu, IMHO. Es ist sehr klar über Eigenschaftswerte von Typ TEXT, aber für diesen Parameter sagt es nur "Der Parameterwert ist Text". Wie auch immer, das für den TEXT-Typ angegebene Escaping scheint für Parameterwerte nicht vollständig zu sein (z. B. ':' ist nicht maskiert).

vielen dank!

Antwort

16

Davka,

Ja, Parameterwerte können durch rund um den Wert in doppelte Anführungszeichen maskiert werden. Parameterwerte müssen entwertet werden, wenn sie eine der folgenden Zeichen enthalten:

; - semicolon 
: - colon 
, - comma 

Es ist illegal, ein doppeltes Anführungszeichen " Zeichen innerhalb Parameterwerte haben, so sollten sie (oder auf andere Weise aus dem Parameterwert entfernt) gelöscht werden.

also mit Ihrem obigen Beispiel die korrekte Entkommen ist dies:

ORGANIZER;CN="John Doe,Eng":mailto:[email protected] 

Beachten Sie, dass, sobald das erste (nicht kotierte) Kolon : angetroffen wird, Parsen Motoren den Rest als Eigenschaftswert behandeln. Es ist zulässig, den Doppelpunkt : in Eigenschaftswerten zu verwenden, damit der Doppelpunkt in mailto:[email protected] nicht maskiert werden muss.

Wir brechen die Linie in seinen Teilen:

  • ORGANIZER - Eigenschaftsname
  • ; - Parameter Trennzeichen
  • CN - Parametername
  • = - Parameterwert Begrenzer
  • "John Doe,Eng" - Parameterwert
  • : - Eigenschaftswert Begrenzer
  • mailto:[email protected] - Eigenschaftswert

Hier ist ein Zitat aus dem RFC 5545 Abschnitt 3.2, der erklärt, wenn die Parameterwerte mit doppelten Anführungszeichen umgeben sind, und sagt uns, doppelte Anführungszeichen sind illegal in Parameterwerten :

Objektparameterwerte, die Kolon SEMIKOLON oder COMMA Charakter Separatoren MÜSSEN als quoted-string Textwerte enthalten angegeben werden. Eigenschaft Parameterwerte MÜSSEN das DQUOTE-Zeichen NICHT enthalten.Das Zeichen DQUOTE wird als Trennzeichen für Parameterwerte verwendet, die eingeschränkte Zeichen oder URI-Text enthalten. Zum Beispiel:

BESCHREIBUNG; ALTREP = "cid: [email protected]": Die Fall'98 Wilde Wizards Conference - - Las Vegas \, NV \, USA

Es ist Wichtig zu beachten, dass Parameter technisch mehrere Werte enthalten können. Ein Komma wird verwendet, um diese mehrere Werte zu trennen:

(aus Abschnitt 3.2.11 von RFC 5545 :)

ATTENDEE;MEMBER="mailto:[email protected]","mailto:pr 
[email protected]":mailto:[email protected] 

Nicht alle iCalendar-Motoren mehrere Werte für alle Parameter akzeptieren, aber die folgenden Parameter sollten erlauben mehrere Werte (nach der RFC):

  • MEMBER
  • DELEGATED-FROM
  • DELEGATED-TO
  • 012.351.

Grüße,

-Doug

+0

Dank eine große Menge für die ausführliche Antwort! – davka

+0

Kein Problem - froh, dass ich helfen konnte :) – Doug

+0

Ich konnte den Komma-Ansatz nicht in Outlook 2013 arbeiten lassen und habe einfach mehrere ATTENDEE-Zeilen angegeben. –

Verwandte Themen