<?php
/**
- * imap_general.php
+ * imap_utf7_local.php
*
* Copyright (c) 1999-2003 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
*
- * This implements all functions that do general imap functions.
+ * This implements all functions that do imap UTF7 conversions.
*
- * $Id $
+ * $Id$
*/
+function sqimap_mb_convert_encoding($str, $to_encoding, $from_encoding, $default_charset)
+{
+ // Allows mbstring functions only with iso-8859-*, utf-8 and
+ // iso-2022-jp (Japanese)
+ // koi8-r and gb2312 can be added only in php 4.3+
+ if ( stristr($default_charset, 'iso-8859-') ||
+ stristr($default_charset, 'utf-8') ||
+ stristr($default_charset, 'iso-2022-jp') ) {
+ if (function_exists('mb_convert_encoding')) {
+ return mb_convert_encoding($str, $to_encoding, $from_encoding);
+ }
+ }
+ return '';
+}
+
function imap_utf7_encode_local($s) {
global $languages, $squirrelmail_language;
function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
return $languages[$squirrelmail_language]['XTRA_CODE']('utf7-imap_encode', $s);
}
+
+ if ($s == '') //If empty, don't bother
+ return '';
+
+ global $default_charset;
+ set_my_charset(); //must be called before using $default_charset
+ if ((strtolower($default_charset) != 'iso-8859-1') && ($default_charset != '')) {
+ $utf7_s = sqimap_mb_convert_encoding($s, 'UTF7-IMAP', $default_charset, $default_charset);
+ if ($utf7_s != '')
+ return $utf7_s;
+ }
+
+ // Later code works only for ISO-8859-1
$b64_s = ''; // buffer for substring to be base64-encoded
$utf7_s = ''; // imap-utf7-encoded string
function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
return $languages[$squirrelmail_language]['XTRA_CODE']('utf7-imap_decode', $s);
}
+
+ if ($s == '') //If empty, don't bother
+ return '';
+
+ global $default_charset;
+ set_my_charset(); //must be called before using $default_charset
+ if ((strtolower($default_charset) != 'iso-8859-1') && ($default_charset != '')) {
+ $utf7_s = sqimap_mb_convert_encoding($s, $default_charset, 'UTF7-IMAP', $default_charset);
+ if ($utf7_s != '')
+ return $utf7_s;
+ }
+
+ // Later code works only for ISO-8859-1
$b64_s = '';
$iso_8859_1_s = '';