From f4eae97a42a068c2c0fb3f2305a90050d5c09246 Mon Sep 17 00:00:00 2001 From: Peter Rotich <peter@osticket.com> Date: Wed, 9 Jan 2013 14:09:50 -0500 Subject: [PATCH] Default nonsensical charsets to ASCII - thanks in part to M$. --- include/class.mailfetch.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php index c567819cb..f3a6fd5c3 100644 --- a/include/class.mailfetch.php +++ b/include/class.mailfetch.php @@ -194,7 +194,10 @@ class MailFetcher { } //Convert text to desired encoding..defaults to utf8 - function mime_encode($text, $charset=null, $enc='utf-8') { //Thank in part to afterburner + function mime_encode($text, $charset=null, $enc='utf-8') { //Thank in part to afterburner + + if($charset && in_array(trim($charset), array('default','x-user-defined'))) + $charset = 'ASCII'; if(function_exists('iconv') and ($charset or function_exists('mb_detect_encoding'))) { if($charset) @@ -208,13 +211,13 @@ class MailFetcher { return utf8_encode($text); } - //Generic decoder - resuting text is utf8 encoded -> mirrors imap_utf8 - function mime_decode($text) { + //Generic decoder - resulting text is utf8 encoded -> mirrors imap_utf8 + function mime_decode($text, $enc='utf-8') { $str = ''; $parts = imap_mime_header_decode($text); foreach ($parts as $part) - $str.= $this->mime_encode($part->text, ($part->charset=='default'?'ASCII':$part->charset), 'utf-8'); + $str.= $this->mime_encode($part->text, $part->charset, $enc); return $str?$str:imap_utf8($text); } -- GitLab