我正在查看一个开源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\".
什么是正确的表示?
答案 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