From f75b9e93f4c82d42b43960bed71a685e8e890f84 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Mon, 27 May 2019 17:00:40 +0200 Subject: [PATCH] some chars also require encoding for iCal 2+ or vCard 3+ --- addressbook/inc/class.addressbook_vcal.inc.php | 5 +++++ calendar/inc/class.calendar_ical.inc.php | 12 ++++-------- infolog/inc/class.infolog_ical.inc.php | 5 +++++ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/addressbook/inc/class.addressbook_vcal.inc.php b/addressbook/inc/class.addressbook_vcal.inc.php index 24dac95dba..2aec1ccfe1 100644 --- a/addressbook/inc/class.addressbook_vcal.inc.php +++ b/addressbook/inc/class.addressbook_vcal.inc.php @@ -476,6 +476,11 @@ class addressbook_vcal extends addressbook_bo unset($options['ENCODING']); } } + // some chars also require encoding for vCard 3+ + elseif (preg_match(Api\CalDAV\Handler::REQUIRE_QUOTED_PRINTABLE_ENCODING, $value)) + { + $options['ENCODING'] = 'QUOTED-PRINTABLE'; + } if ($vcardField == 'TEL' && $entry['tel_prefer'] && ($databaseField == $entry['tel_prefer'])) { diff --git a/calendar/inc/class.calendar_ical.inc.php b/calendar/inc/class.calendar_ical.inc.php index 65bf664fb7..1453477ff9 100644 --- a/calendar/inc/class.calendar_ical.inc.php +++ b/calendar/inc/class.calendar_ical.inc.php @@ -1048,16 +1048,12 @@ class calendar_ical extends calendar_boupdate $paramData['ENCODING'] = 'FUNAMBOL-QP'; } } - /* - if (preg_match('/([\000-\012])/', $valueData)) + // some chars also require encoding for iCal 2+ + elseif (preg_match(Api\CalDAV\Handler::REQUIRE_QUOTED_PRINTABLE_ENCODING, $valueData)) { - if ($this->log) - { - error_log(__FILE__.'['.__LINE__.'] '.__METHOD__ . - "() Has invalid XML data: $valueData",3,$this->logfile); - } + $paramData['ENCODING'] = 'QUOTED-PRINTABLE'; } - */ + $vevent->setAttribute($key, $valueData, $paramData, true, $valuesData); } } diff --git a/infolog/inc/class.infolog_ical.inc.php b/infolog/inc/class.infolog_ical.inc.php index 79c5ee6f8c..04d261320b 100644 --- a/infolog/inc/class.infolog_ical.inc.php +++ b/infolog/inc/class.infolog_ical.inc.php @@ -313,6 +313,11 @@ class infolog_ical extends infolog_bo $options['ENCODING'] = 'FUNAMBOL-QP'; } } + // some chars also require encoding for iCal 2+ + elseif (preg_match(Api\CalDAV\Handler::REQUIRE_QUOTED_PRINTABLE_ENCODING, $value)) + { + $options['ENCODING'] = 'QUOTED-PRINTABLE'; + } $vevent->setAttribute($field, $value, $options); }