ical ics文件中的换行符无法在Apple日历上正确显示

时间:2018-09-20 15:56:35

标签: php icalendar

(我已经阅读了有关此问题的大多数主题,并尝试了各种替代方法,但仍然无法解决我的问题)。

我正在从php脚本生成ical日历事件,以通过电子邮件发送。这工作得很好。会收到ics附件,可以打开它们并将其用于创建/修改/删除日历事件。我主要在iPhone上进行测试。

我遇到的问题是在Description字段中包含换行符: -如果生成“ \ n”或“ \ r \ n”(在\ n后有空格),则整个字段将显示为一行。 -如果生成“ \ n”或“ \ r \ n”,则显示字符“ \ n”或“ \ r \ n”。

此外,由于我读到;可能存在问题,因此我尝试插入;;在描述中:用\进行转义时,显示为\;并且即使不逃脱也不会造成任何问题。

这是一个ics附件的示例

BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
ORGANIZER:MAILTO:noreplyClickNFly@aeroclub-uaca.org
DTSTART:20180924T080000Z
DTEND:20180924T090000Z
LOCATION:Uaca
 245 Avenue Francis Tonner 06150 Cannes, France
TRANSP:OPAQUE
SEQUENCE:0
UID:20180919T190033-331242606@aeroclub-uaca.org
DTSTAMP:20180919T170033Z
SUMMARY:Baptême sur F-GJPJ
DESCRIPTION:Vol local\\r\\n PAX: John Doe (06.00.11.22.33)\\r\\n 5ème essai pour test calendrier
PRIORITY:5
CLASS:PUBLIC
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR

任何建议都将受到欢迎。

谢谢。

1 个答案:

答案 0 :(得分:0)

表示换行符的唯一有效格式是\ n。 参见https://tools.ietf.org/html/rfc5545#section-3.3.11

  

故意格式化的文本换行符必须仅包含在         “ TEXT”属性值,方法是用         BACKSLASH的字符序列,后跟一个拉丁文小写字母         N或拉丁文大写字母N,即“ \ n”或“ \ N”。

您能否在说明中包含生成的整个电子邮件,以便检查实际收到的内容?