Php 使用文字';dquote';icalendar值中的字符串

Php 使用文字';dquote';icalendar值中的字符串,php,escaping,icalendar,Php,Escaping,Icalendar,我正在看一个开源PHP程序,它执行以下转换来替换字符串值中的双引号字符: $text = str_replace("\"", "DQUOTE", $text); 例如,字符串调用我“foo”。经过此转换后,将在icalendar描述字段中表示,如下所示: DESCRIPTION:Call me DQUOTEfooDQUOTE. 描述:叫我DQUOTEfooDQUOTE。 我对各种在线文档(及其摘要)的阅读表明,这是不正确的,正确的表述应该是 DESCRIPTION:Call me \"foo\

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

$text = str_replace("\"", "DQUOTE", $text);
例如,字符串
调用我“foo”。
经过此转换后,将在icalendar描述字段中表示,如下所示:

DESCRIPTION:Call me DQUOTEfooDQUOTE. 描述:叫我DQUOTEfooDQUOTE。 我对各种在线文档(及其摘要)的阅读表明,这是不正确的,正确的表述应该是

DESCRIPTION:Call me \"foo\". 描述:叫我“foo”。 什么是正确的表示法?

的规范指出,双引号和单引号根本不需要转义,就像描述字段()的示例一样,因此正确的表示法是

DESCRIPTION:Call me "foo". 描述:叫我“福”。
顺便说一句,自从提出这个问题以来,受影响的开源项目已经解决了这个问题:

使用不同的程序。这一条似乎误解了RFC。RFC实际上说,
DQUOTE=%x22
也许您正在查看的库以后会有另一个替换?因为它是开源的,我可以提交一个补丁,一旦我弄清楚了正确的解释。@apokryfos,那么正确的解释应该是
描述:叫我%x22foo%x22。
?@mkaatman,好主意,但我观察到了提要中的文字DQUOTE表示。