我通过阅读规范 ( http://www.ietf.org/rfc/rfc2445.txt ) 的理解是“:”字符不应该在描述等文本值中转义。
来自 RFC:
“TEXT”属性值还可以包含用于表示分隔符的特殊字符,例如值列表的逗号字符或结构化值的分号字符。为了
支持在“TEXT”属性
值中包含这些特殊字符,它们必须使用 BACKSLASH 字符进行转义。
“TEXT”属性值中的 BACKSLASH字符(US-ASCII 十进制 92)必须
使用另一个 BACKSLASH 字符进行转义。“TEXT”属性值中的
COMMA 字符必须使用 BACKSLASH 字符
(US-ASCII 十进制 92)进行转义。“TEXT”属性中的分号字符
value 必须使用 BACKSLASH 字符(US-ASCII 十进制 92)进行转义。但是,“TEXT”属性值中的冒号字符不得使用 BACKSLASH 字符进行转义。
我之所以这样问,是因为我在 Mac OS X 的 Meeting Maker v8.7.1b63 中收到了语法错误,但由于这个字符,而不是 Windows 版本的软件(相同的版本号)。我从我编写的软件生成的 ics 文件令人窒息。这是我他们的软件中的错误吗?
这是收到错误的 iCalendar 文件:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//abc/abc//NONSGML v1.0//EN
BEGIN:VEVENT
UID:1234_abcd@abc.abc
DTSTART:20091022T133000
DTEND:20091022T150000
SUMMARY:Special Topics in Power Point
LOCATION:The Location
DESCRIPTION:Learn how to use PowerPoint as a tool to organize and pres
ent your ideas to others. Basic computer skills are required. This h
ands-on workshop will provide you with experience in the following: wh
at's new in PowerPoint 2007\, presentation basics\, working with text
\, viewing a presentation\, formatting\, finalizing a presentation and
delivering a presentation.
END:VEVENT
END:VCALENDAR
注意描述第三行的冒号。在这个冒号上添加一个斜杠可以解决 Mac 上的问题,但我认为根据标准这是不正确的。
谢谢你的帮助!