使用字面意思“#qu;' icalendar值中的字符串

时间:2017-03-28 16:00:44

标签: php escaping icalendar

我正在查看一个开源PHP程序,该程序执行以下转换以替换字符串值中的双引号字符:

$text = str_replace("\"", "DQUOTE", $text);

例如,在此转换之后,字符串Call me "foo".将在icalendar DESCRIPTION字段中表示,如下所示:

DESCRIPTION:Call me DQUOTEfooDQUOTE.

我阅读各种在线文档(http://www.ietf.org/rfc/rfc2445.txt及其在http://www.kanzaki.com/docs/ical/的摘要)表明这是不正确的,正确的表示应该是

DESCRIPTION:Call me \"foo\".

什么是正确的表示?

1 个答案:

答案 0 :(得分:0)

https://tools.ietf.org/html/rfc2445#section-4.3.11处的规范表明双引号和单引号根本不需要转义,描述字段(https://tools.ietf.org/html/rfc2445#section-4.8.1.5)的示例也是如此,因此正确的表示形式将是

DESCRIPTION:Call me "foo".
BTW,自提出此问题以来,受影响的开源项目解决了这个问题:https://issues.civicrm.org/jira/browse/CRM-20350