Parsing 可以/应该转义iCal属性参数吗?

Parsing 可以/应该转义iCal属性参数吗?,parsing,icalendar,vcalendar,rfc5545,vcal,Parsing,Icalendar,Vcalendar,Rfc5545,Vcal,具体来说,CN(公共名称)参数,例如 组织者;CN=John Doe,英文:mailto:jd@some.com RFC对此含糊不清,伊姆霍。关于类型文本的属性值是非常清楚的,但是对于这个参数,它只是说“参数值是文本”。无论如何,为文本类型指定的转义对于参数值似乎不完整(例如,“:”未转义) 非常感谢 达夫卡 是的,参数值可以用双引号括起来进行转义。如果参数值包含以下任何字符,则必须对其进行转义: ; - semicolon : - colon , - comma 在参数值中包含双引号“字符是

具体来说,CN(公共名称)参数,例如

组织者;CN=John Doe,英文:mailto:jd@some.com

RFC对此含糊不清,伊姆霍。关于类型文本的属性值是非常清楚的,但是对于这个参数,它只是说“参数值是文本”。无论如何,为文本类型指定的转义对于参数值似乎不完整(例如,“:”未转义)

非常感谢

达夫卡

是的,参数值可以用双引号括起来进行转义。如果参数值包含以下任何字符,则必须对其进行转义:

; - semicolon
: - colon
, - comma
在参数值中包含双引号
字符是非法的,因此应将其删除(或从参数值中删除)

因此,在上面的示例中,正确的转义是:

ORGANIZER;CN="John Doe,Eng":mailto:jd@some.com
请注意,一旦遇到第一个(不带引号的)冒号
,解析引擎就会将其余冒号视为属性值。在属性值中使用冒号
字符是合法的,因此
mailto中的冒号:jd@some.com
不需要转义

我们可以将生产线分成几个部分:

  • 组织者
    -属性名称
  • -参数分隔符
  • CN
    -参数名称
  • =
    -参数值分隔符
  • “John Doe,Eng”
    -参数值
  • -属性值分隔符
  • mailto:jd@some.com
    -属性值
以下是RFC 5545第3.2节中的一段引文,该引文解释了参数值何时用双引号括起来,并告诉我们双引号在参数值中是非法的:

包含 冒号、分号或逗号 必须指定字符分隔符 带引号的字符串文本值。属性 参数值不能包含 DQUOTE字符。DQUOTE 字符用作的分隔符 包含 限制字符或URI文本。 例如:

DESCRIPTION;ALTREP=“cid:第1部分。0001@example.org“:这个 1998年秋季野生巫师大会-- 美国内华达州拉斯维加斯

需要注意的是,从技术上讲,参数可以包含多个值。逗号用于分隔这些多个值:

(来自RFC 5545第3.2.11节:)

并非所有iCalendar发动机都会接受所有参数的多个值,但以下参数应允许多个值(根据RFC):

  • 成员
  • 委托自
  • 委托给
问候,


-Doug

没问题-很高兴我能帮上忙:)我无法在Outlook 2013中使用逗号方法,结果只是指定了多个与会者行。是的,正如预期的那样。逗号方法是为同一个人(即具有多个电子邮件地址的人)提供多个别名。根据RFC6868,您可以转义“所以现在在参数值内加双引号不再是非法的。谢谢你,先生!!!
ATTENDEE;MEMBER="mailto:projectA@example.com","mailto:pr
 ojectB@example.com":mailto:janedoe@example.com