can/should iCal property parametrs be escaped?

大城市里の小女人 提交于 2019-12-05 01:12:48

Davka,

Yes, parameter values can be escaped by surrounding the value in double-quotes. Parameter values must be escaped if they contain any of the following characters:

; - semicolon
: - colon
, - comma

It is illegal to have a double quote " character inside parameter values, so they should be deleted (or otherwise removed from the parameter value).

So, with your above example, the correct escaping is this:

ORGANIZER;CN="John Doe,Eng":mailto:jd@some.com

Note that once the first (unquoted) colon : is encountered, parsing engines treat the rest as the property value. It is legal to use the colon : character inside property values, so the colon in mailto:jd@some.com doesn't need to be escaped.

We can break the line into it's parts:

  • ORGANIZER - property name
  • ; - parameter delimiter
  • CN - parameter name
  • = - parameter value delimiter
  • "John Doe,Eng" - parameter value
  • : - property value delimiter
  • mailto:jd@some.com - property value

Here's a quote from RFC 5545 Section 3.2 that explains when parameter values are surrounded with double-quotes, and tells us double-quotes are illegal in parameter values:

Property parameter values that contain the COLON, SEMICOLON, or COMMA character separators MUST be specified as quoted-string text values. Property parameter values MUST NOT contain the DQUOTE character. The DQUOTE character is used as a delimiter for parameter values that contain restricted characters or URI text. For example:

DESCRIPTION;ALTREP="cid:part1.0001@example.org":The Fall'98 Wild Wizards Conference - - Las Vegas\, NV\, USA

It's important to note that parameters can technically contain multiple values. A comma is used to separate these multiple values:

(from Section 3.2.11 of RFC 5545:)

ATTENDEE;MEMBER="mailto:projectA@example.com","mailto:pr
 ojectB@example.com":mailto:janedoe@example.com

Not all iCalendar engines will accept multiple values on all parameters, but the following parameters SHOULD allow multiple values (according to the RFC):

  • MEMBER
  • DELEGATED-FROM
  • DELEGATED-TO

Regards,

-Doug

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!