Dou*_*oug 18
Davka,
是的,参数值可以通过用双引号括起来转义.如果参数值包含以下任何字符,则必须对其进行转义:
; - semicolon
: - colon
, - comma
Run Code Online (Sandbox Code Playgroud)
"在参数值中包含双引号字符是非法的,因此应删除它们(或以其他方式从参数值中删除).
因此,使用上面的示例,正确的转义是这样的:
ORGANIZER;CN="John Doe,Eng":mailto:jd@some.com
Run Code Online (Sandbox Code Playgroud)
请注意,一旦:遇到第一个(未引用的)冒号,解析引擎会将其余部分视为属性值.:在属性值中使用冒号字符是合法的,因此mailto:jd@some.com不需要对冒号进行转义.
我们可以打破它的部分:
ORGANIZER - 财产名称; - 参数分隔符CN - 参数名称= - 参数值分隔符"John Doe,Eng" - 参数值: - 属性值分隔符mailto:jd@some.com - 适当的价值这是RFC 5545第3.2节引用的一个引用,它解释了参数值何时用双引号括起来,并告诉我们双引号在参数值中是非法的:
包含COLON,SEMICOLON或COMMA字符分隔符的属性参数值必须指定为带引号的字符串文本值.属性参数值绝不能包含DQUOTE字符.DQUOTE字符用作包含受限字符或URI文本的参数值的分隔符.例如:
描述; ALTREP ="cid:part1.0001@example.org":Fall'98 Wild Wizards Conference - - Las Vegas \,NV \,USA
重要的是要注意参数在技术上可以包含多个值.逗号用于分隔这些多个值:
(来自RFC 5545的第3.2.11节:)
ATTENDEE;MEMBER="mailto:projectA@example.com","mailto:pr
ojectB@example.com":mailto:janedoe@example.com
Run Code Online (Sandbox Code Playgroud)
并非所有iCalendar引擎都会接受所有参数的多个值,但以下参数应该允许多个值(根据RFC):
问候,
-Doug