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); }