Author: Alexandru Stanoi
Date: 2007-03-07 10:17:56 +0100 (Wed, 07 Mar 2007)
New Revision: 4725

Log:
- Fixed issue #10396: Method convertToUTF8 assumes 'latin1' charset instead of
  'unknown-8bit' and 'x-user-defined'.

Added:
   stable/Mail/1.2/tests/transports/data/unknown-charsets.mbox
Modified:
   stable/Mail/1.2/ChangeLog
   stable/Mail/1.2/src/internal/charset_convert.php
   stable/Mail/1.2/tests/transports/transport_mbox_test.php

Modified: stable/Mail/1.2/ChangeLog
===================================================================
--- stable/Mail/1.2/ChangeLog   2007-03-06 16:08:27 UTC (rev 4724)
+++ stable/Mail/1.2/ChangeLog   2007-03-07 09:17:56 UTC (rev 4725)
@@ -20,6 +20,8 @@
   mails with wrapped headers.
 - Fixed issue #10359: unrecognized mail body parts are parsed using the
   ezcMailFileParser.
+- Fixed issue #10396: Method convertToUTF8 assumes 'latin1' charset instead of
+  'unknown-8bit' and 'x-user-defined'.
 
 
 1.2 - Monday 18 December 2006

Modified: stable/Mail/1.2/src/internal/charset_convert.php
===================================================================
--- stable/Mail/1.2/src/internal/charset_convert.php    2007-03-06 16:08:27 UTC 
(rev 4724)
+++ stable/Mail/1.2/src/internal/charset_convert.php    2007-03-07 09:17:56 UTC 
(rev 4725)
@@ -21,14 +21,20 @@
     /**
      * Converts the $text with the charset $originalCharset to UTF-8
      *
+     * In case $originalCharset is 'unknown-8bit' or 'x-user-defined' then
+     * it is assumed to be 'latin1' (ISO-8859-1).
+     *
      * @param string $text
      * @param string $originalCharset
      * @return string
      */
     public static function convertToUTF8( $text, $originalCharset )
     {
+        if ( $originalCharset === 'unknown-8bit' || $originalCharset === 
'x-user-defined' )
+        {
+            $originalCharset = "latin1";
+        }
         return iconv( $originalCharset, 'utf-8', $text );
     }
 }
-
 ?>

Added: stable/Mail/1.2/tests/transports/data/unknown-charsets.mbox
===================================================================
--- stable/Mail/1.2/tests/transports/data/unknown-charsets.mbox 2007-03-06 
16:08:27 UTC (rev 4724)
+++ stable/Mail/1.2/tests/transports/data/unknown-charsets.mbox 2007-03-07 
09:17:56 UTC (rev 4725)
@@ -0,0 +1,46 @@
+From [EMAIL PROTECTED] Sat Mar 03 20:07:45 2007
+X-UIDL: 1YC!!;'*!!ndf!!~+]!!
+Return-path: <[EMAIL PROTECTED]>
+Envelope-to: [EMAIL PROTECTED]
+Delivery-date: Sat, 03 Mar 2007 20:07:45 +0200
+Received: from root by localhost.localdomain with local (Exim 4.50)
+       id 1HNYe0-0000FS-Um
+       for [EMAIL PROTECTED]; Sat, 03 Mar 2007 20:07:45 +0200
+Date: Sat, 3 Mar 2007 20:07:44 +0200
+To: vtiger <[EMAIL PROTECTED]>
+Subject: test
+Message-ID: <[EMAIL PROTECTED]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=x-user-defined
+Content-Disposition: inline
+User-Agent: Mutt/1.5.9i
+From: root <[EMAIL PROTECTED]>
+Status: RO
+Content-Length: 7
+Lines: 2
+
+Tämä on testiöö1
+
+
+From [EMAIL PROTECTED] Sat Mar 03 22:03:18 2007
+X-UIDL: :k%#!A~n!!l=*"!1cY!!
+Return-path: <[EMAIL PROTECTED]>
+Envelope-to: [EMAIL PROTECTED]
+Delivery-date: Sat, 03 Mar 2007 22:03:18 +0200
+Received: from root by localhost.localdomain with local (Exim 4.50)
+       id 1HNaRq-0000GP-2g
+       for [EMAIL PROTECTED]; Sat, 03 Mar 2007 22:03:18 +0200
+Date: Sat, 3 Mar 2007 22:03:18 +0200
+To: vtiger <[EMAIL PROTECTED]>
+Subject: Mail test 2
+Message-ID: <[EMAIL PROTECTED]>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=unknown-8bit
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+User-Agent: Mutt/1.5.9i
+From: root <[EMAIL PROTECTED]>
+Status: RO
+
+Tämä on testiöö2
+

Modified: stable/Mail/1.2/tests/transports/transport_mbox_test.php
===================================================================
--- stable/Mail/1.2/tests/transports/transport_mbox_test.php    2007-03-06 
16:08:27 UTC (rev 4724)
+++ stable/Mail/1.2/tests/transports/transport_mbox_test.php    2007-03-07 
09:17:56 UTC (rev 4725)
@@ -227,6 +227,19 @@
         $this->assertEquals( $expected, $mail[0]->getHeader( "List-Subscribe" 
) );
     }
 
+    public function testFetchMailUnknownCharsets()
+    {
+        $mbox = new ezcMailMboxTransport( dirname( __FILE__ ) . 
"/data/unknown-charsets.mbox" );
+        $set = $mbox->fetchAll();
+        $parser = new ezcMailParser();
+        $mail = $parser->parseMail( $set );
+        $this->assertEquals( "x-user-defined", $mail[0]->body->originalCharset 
);
+        $this->assertEquals( "utf-8", $mail[0]->body->charset );
+        $this->assertEquals( "Tämä on testiöö1", trim( 
$mail[0]->body->text ) );
+        $this->assertEquals( "unknown-8bit", $mail[1]->body->originalCharset );
+        $this->assertEquals( "utf-8", $mail[1]->body->charset );
+        $this->assertEquals( "Tämä on testiöö2", trim( 
$mail[1]->body->text ) );
+    }
 
     public static function suite()
     {

-- 
svn-components mailing list
svn-components@lists.ez.no
http://lists.ez.no/mailman/listinfo/svn-components

Reply via email to