From ba19d4e6b171720bd5a849f6931a9179cfaa8be2 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Thu, 6 Oct 2022 09:43:34 +0200 Subject: [PATCH] Replace PHP 8.2.0 deprecated utf8_decode/utf8_encode --- .../app/libraries/MailSo/Base/Locale.php | 34 +++++-------------- .../0.0.0/app/libraries/MailSo/Base/Utils.php | 30 ++++++---------- .../app/libraries/MailSo/Imap/ImapClient.php | 2 +- .../RainLoop/Providers/AddressBook/Legacy.php | 4 +-- .../Providers/AddressBook/PdoAddressBook.php | 2 +- .../Sabre/VObject/Parser/MimeDir.php | 2 -- 6 files changed, 24 insertions(+), 50 deletions(-) diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Base/Locale.php b/snappymail/v/0.0.0/app/libraries/MailSo/Base/Locale.php index f0a00319d..5c5c15339 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Base/Locale.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Base/Locale.php @@ -75,40 +75,24 @@ abstract class Locale public static function DetectSystemCharset() : string { - $sResult = ''; - $sLocale = \setlocale(LC_ALL, ''); - $sLocaleLower = \strtolower(\trim($sLocale)); - - foreach (static::$aLocaleMapping as $sKey => $sValue) - { - if (false !== \strpos($sLocaleLower, $sKey) || - false !== \strpos($sLocaleLower, '.'.$sValue)) - { - $sResult = $sValue; - break; + $sLocale = \strtolower(\trim(\setlocale(LC_ALL, ''))); + foreach (static::$aLocaleMapping as $sKey => $sValue) { + if (\str_contains($sLocale, $sKey) || \str_contains($sLocale, '.'.$sValue)) { + return $sValue; } } - - return $sResult; + return ''; } public static function ConvertSystemString(string $sSrt) : string { $sSrt = \trim($sSrt); - if (!empty($sSrt) && !Utils::IsUtf8($sSrt)) - { + if (!empty($sSrt) && !Utils::IsUtf8($sSrt)) { $sCharset = static::DetectSystemCharset(); - if (!empty($sCharset)) - { - $sSrt = Utils::ConvertEncoding( - $sSrt, $sCharset, Enumerations\Charset::UTF_8); - } - else - { - $sSrt = \utf8_encode($sSrt); - } + $sSrt = $sCharset + ? Utils::ConvertEncoding($sSrt, $sCharset, Enumerations\Charset::UTF_8) + : \mb_convert_encoding($sSrt, 'UTF-8', 'ISO-8859-1'); } - return $sSrt; } diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Base/Utils.php b/snappymail/v/0.0.0/app/libraries/MailSo/Base/Utils.php index 80697c0ac..706df4bf0 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Base/Utils.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Base/Utils.php @@ -183,22 +183,12 @@ abstract class Utils return $sInputString; } - if ($sToEncoding === Enumerations\Charset::UTF_8) { - if ($sFromEncoding === Enumerations\Charset::ISO_8859_1) { - return \utf8_encode($sInputString); - } - if ($sFromEncoding === 'utf7-imap') { - return static::Utf7ModifiedToUtf8($sInputString); - } + if ($sToEncoding === Enumerations\Charset::UTF_8 && $sFromEncoding === 'utf7-imap') { + return static::Utf7ModifiedToUtf8($sInputString); } - if ($sFromEncoding === Enumerations\Charset::UTF_8) { - if ($sToEncoding === Enumerations\Charset::ISO_8859_1) { - return \utf8_decode($sInputString); - } - if ($sToEncoding === 'utf7-imap') { - return static::Utf8ToUtf7Modified($sInputString); - } + if ($sFromEncoding === Enumerations\Charset::UTF_8 && $sToEncoding === 'utf7-imap') { + return static::Utf8ToUtf7Modified($sInputString); } return static::MbConvertEncoding($sInputString, $sFromEncoding, $sToEncoding); @@ -1129,9 +1119,10 @@ abstract class Utils { $sResult = \is_callable('imap_mutf7_to_utf8') ? \imap_mutf7_to_utf8($sStr) - : \mb_convert_encoding($sStr, 'UTF-8', 'UTF7-IMAP'); -// static::MbConvertEncoding($sStr, 'UTF7-IMAP', 'UTF-8'); -// $sResult = \UConverter::transcode($sStr, \UConverter::UTF8, \UConverter::IMAP_MAILBOX); +// : \mb_convert_encoding($sStr, 'UTF-8', 'UTF7-IMAP'); + : static::MbConvertEncoding($sStr, 'UTF7-IMAP', 'UTF-8'); + // ucnv U_FILE_ACCESS_ERROR +// $sResult = \UConverter::transcode($sStr, \UConverter::UTF8, \UConverter::IMAP_MAILBOX, ['to_subst' => '�']); return (false === $sResult) ? $sStr : $sResult; } @@ -1139,8 +1130,9 @@ abstract class Utils { $sResult = \is_callable('imap_utf8_to_mutf7') ? \imap_utf8_to_mutf7($sStr) - : \mb_convert_encoding($sStr, 'UTF7-IMAP', 'UTF-8'); -// static::MbConvertEncoding($sStr, 'UTF-8', 'UTF7-IMAP'); +// : \mb_convert_encoding($sStr, 'UTF7-IMAP', 'UTF-8'); + : static::MbConvertEncoding($sStr, 'UTF-8', 'UTF7-IMAP'); + // ucnv U_FILE_ACCESS_ERROR // $sResult = \UConverter::transcode($sStr, \UConverter::IMAP_MAILBOX, \UConverter::UTF8); return (false === $sResult) ? $sStr : $sResult; } diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php index 2b2e8f140..600097313 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php @@ -219,7 +219,7 @@ class ImapClient extends \MailSo\Net\NetClient } else { - $sPassword = $this->EscapeString(\utf8_decode($sPassword)); + $sPassword = $this->EscapeString(\mb_convert_encoding($sPassword, 'ISO-8859-1', 'UTF-8')); if ($this->oLogger) { $this->oLogger->AddSecret($sPassword); diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/Legacy.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/Legacy.php index 586731189..117570c01 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/Legacy.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/Legacy.php @@ -41,7 +41,7 @@ class Legacy $sValue = \trim($oProp); if ($bOldVersion && !isset($oProp->parameters['CHARSET'])) { if (\strlen($sValue)) { - $sEncValue = \utf8_encode($sValue); + $sEncValue = \mb_convert_encoding($sValue, 'UTF-8', 'ISO-8859-1'); if (\strlen($sEncValue)) { $sValue = $sEncValue; } @@ -67,7 +67,7 @@ class Legacy $sValue = \trim($sValue); if ($bOldVersion && !isset($oVCard->N->parameters['CHARSET'])) { if (\strlen($sValue)) { - $sEncValue = \utf8_encode($sValue); + $sEncValue = \mb_convert_encoding($sValue, 'UTF-8', 'ISO-8859-1'); if (\strlen($sEncValue)) { $sValue = $sEncValue; } diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php index b6874755e..9a37ee8b2 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php @@ -1030,7 +1030,7 @@ class PdoAddressBook catch (\Throwable $oException) { $sResult = $oException->getMessage(); if (!empty($sResult) && !\MailSo\Base\Utils::IsAscii($sResult) && !\MailSo\Base\Utils::IsUtf8($sResult)) { - $sResult = \utf8_encode($sResult); + $sResult = \mb_convert_encoding($sResult, 'UTF-8', 'ISO-8859-1'); } if (!\is_string($sResult) || empty($sResult)) { diff --git a/snappymail/v/0.0.0/app/libraries/Sabre/VObject/Parser/MimeDir.php b/snappymail/v/0.0.0/app/libraries/Sabre/VObject/Parser/MimeDir.php index 92336feea..1b9136a78 100644 --- a/snappymail/v/0.0.0/app/libraries/Sabre/VObject/Parser/MimeDir.php +++ b/snappymail/v/0.0.0/app/libraries/Sabre/VObject/Parser/MimeDir.php @@ -465,8 +465,6 @@ class MimeDir extends Parser case 'utf-8': break; case 'iso-8859-1': - $property['value'] = utf8_encode($property['value']); - break; case 'windows-1252': $property['value'] = mb_convert_encoding($property['value'], 'UTF-8', $charset); break;