将新行传递到sharepoint中的ics导出中的描述字段

时间:2014-05-09 04:10:50

标签: sharepoint icalendar sharepoint-designer

我使用以下格式从sharepoint列表项导出ics文件:

http://sharepoint/site/_vti_bin/owssvr.dll?CS=109&Cmd=Display&List=[List GUID]&CacheControl=1&ID=[Item ID]&Using=event.ics

我的列表中有一个名为description的列,它会在正确的位置传递给生成的ics文件,但是任何\n似乎都会转义到显示的\\n作为日历约会中的文字。

我尝试过很多不同的选择,但似乎无法实现这一点。

\n\\n

取代

\134n\\n

取代

\\n生成正确但不起作用

\012似乎打破了ics文件,除非它后跟一个空格字符,但随后它会被展开并被忽略。

我拒绝相信这是不可能的。任何帮助将不胜感激,任何解决方案都会让我感到沮丧。

1 个答案:

答案 0 :(得分:0)

我不知道原始数据是如何存储的,但icalendar规范(RFC5545)规格:

  

“TEXT”属性值也可能包含特殊字符         用于表示分隔符的分隔符,例如COMMA字符         值列表或结构化值的SEMICOLON字符。         为了支持包含这些特殊字符         “TEXT”属性值,它们必须使用BACKSLASH进行转义         字符。 “TEXT”属性值中的BACKSLASH字符必须         用另一个BACKSLASH字符转义。一个COMMA角色         必须使用BACKSLASH转义“TEXT”属性值         字符。 “TEXT”属性值中的SEMICOLON字符必须         使用BACKSLASH字符进行转义。但是,一个COLON角色         在“TEXT”属性值中,不应使用BACKSLASH进行转义         字符。

示例:多行值:

   Project XYZ Final Review
   Conference Room - 3B
   Come Prepared.

  would be represented as:

   Project XYZ Final Review\nConference Room - 3B\nCome Prepared.

因此,为了让您的导出工作,您应该保持\ n按原样,用\ n替换CRLF,并希望您的用户拥有标准的兼容日历工具。