original_string: protected static function _convertCharset($input, $from, $to)
      {
          /* Use utf8_[en|de]code() if possible and if the string isn't too
           * large (less than 16 MB = 16 * 1024 * 1024 = 16777216 bytes) - these
           * functions use more memory. */
          if (Horde_Util::extensionExists('xml') &&
              ((strlen($input) < 16777216) ||
               !Horde_Util::extensionExists('iconv') ||
               !Horde_Util::extensionExists('mbstring'))) {
              if (($to == 'utf-8') &&
                  in_array($from, array('iso-8859-1', 'us-ascii', 'utf-8'))) {
                  return utf8_encode($input);
              }
  
              if (($from == 'utf-8') &&
                  in_array($to, array('iso-8859-1', 'us-ascii', 'utf-8'))) {
                  return utf8_decode($input);
              }
          }
  
          /* Try UTF7-IMAP conversions. */
          if (($from == 'utf7-imap') || ($to == 'utf7-imap')) {
              try {
                  if ($from == 'utf7-imap') {
                      return self::convertCharset(Horde_Imap_Client_Utf7imap::Utf7ImapToUtf8($input), 'UTF-8', $to);
                  } else {
                      if ($from == 'utf-8') {
                          $conv = $input;
                      } else {
                          $conv = self::convertCharset($input, $from, 'UTF-8');
                      }
                      return Horde_Imap_Client_Utf7imap::Utf8ToUtf7Imap($conv);
                  }
              } catch (Horde_Imap_Client_Exception $e) {
                  return $input;
              }
          }
  
          /* Try iconv with transliteration. */
          if (Horde_Util::extensionExists('iconv')) {
              unset($php_errormsg);
              ini_set('track_errors', 1);
              $out = @iconv($from, $to . '//TRANSLIT', $input);
              $errmsg = isset($php_errormsg);
              ini_restore('track_errors');
              if (!$errmsg && $out !== false) {
                  return $out;
              }
          }
  
          /* Try mbstring. */
          if (Horde_Util::extensionExists('mbstring')) {
              $out = @mb_convert_encoding($input, $to, self::_mbstringCharset($from));
              if (!empty($out)) {
                  return $out;
              }
          }
  
          return $input;
      }
code: protected static function _convertCharset($input, $from, $to)
      {
          /* Use utf8_[en|de]code() if possible and if the string isn't too
           * large (less than 16 MB = 16 * 1024 * 1024 = 16777216 bytes) - these
           * functions use more memory. */
          if (Horde_Util::extensionExists('xml') &&
              ((strlen($input) < 16777216) ||
               !Horde_Util::extensionExists('iconv') ||
               !Horde_Util::extensionExists('mbstring'))) {
              if (($to == 'utf-8') &&
                  in_array($from, array('iso-8859-1', 'us-ascii', 'utf-8'))) {
                  return utf8_encode($input);
              }
  
              if (($from == 'utf-8') &&
                  in_array($to, array('iso-8859-1', 'us-ascii', 'utf-8'))) {
                  return utf8_decode($input);
              }
          }
  
          /* Try UTF7-IMAP conversions. */
          if (($from == 'utf7-imap') || ($to == 'utf7-imap')) {
              try {
                  if ($from == 'utf7-imap') {
                      return self::convertCharset(Horde_Imap_Client_Utf7imap::Utf7ImapToUtf8($input), 'UTF-8', $to);
                  } else {
                      if ($from == 'utf-8') {
                          $conv = $input;
                      } else {
                          $conv = self::convertCharset($input, $from, 'UTF-8');
                      }
                      return Horde_Imap_Client_Utf7imap::Utf8ToUtf7Imap($conv);
                  }
              } catch (Horde_Imap_Client_Exception $e) {
                  return $input;
              }
          }
  
          /* Try iconv with transliteration. */
          if (Horde_Util::extensionExists('iconv')) {
              unset($php_errormsg);
              ini_set('track_errors', 1);
              $out = @iconv($from, $to . '//TRANSLIT', $input);
              $errmsg = isset($php_errormsg);
              ini_restore('track_errors');
              if (!$errmsg && $out !== false) {
                  return $out;
              }
          }
  
          /* Try mbstring. */
          if (Horde_Util::extensionExists('mbstring')) {
              $out = @mb_convert_encoding($input, $to, self::_mbstringCharset($from));
              if (!empty($out)) {
                  return $out;
              }
          }
  
          return $input;
      }
code_tokens: protected static function _convertCharset ( $ input , $ from , $ to ) { /* Use utf8_[en|de]code() if possible and if the string isn't too
           * large (less than 16 MB = 16 * 1024 * 1024 = 16777216 bytes) - these
           * functions use more memory. */ if ( Horde_Util :: extensionExists ( 'xml' ) && ( ( strlen ( $ input ) < 16777216 ) || ! Horde_Util :: extensionExists ( 'iconv' ) || ! Horde_Util :: extensionExists ( 'mbstring' ) ) ) { if ( ( $ to == 'utf-8' ) && in_array ( $ from , array ( 'iso-8859-1' , 'us-ascii' , 'utf-8' ) ) ) { return utf8_encode ( $ input ) ; } if ( ( $ from == 'utf-8' ) && in_array ( $ to , array ( 'iso-8859-1' , 'us-ascii' , 'utf-8' ) ) ) { return utf8_decode ( $ input ) ; } } /* Try UTF7-IMAP conversions. */ if ( ( $ from == 'utf7-imap' ) || ( $ to == 'utf7-imap' ) ) { try { if ( $ from == 'utf7-imap' ) { return self :: convertCharset ( Horde_Imap_Client_Utf7imap :: Utf7ImapToUtf8 ( $ input ) , 'UTF-8' , $ to ) ; } else { if ( $ from == 'utf-8' ) { $ conv = $ input ; } else { $ conv = self :: convertCharset ( $ input , $ from , 'UTF-8' ) ; } return Horde_Imap_Client_Utf7imap :: Utf8ToUtf7Imap ( $ conv ) ; } } catch ( Horde_Imap_Client_Exception $ e ) { return $ input ; } } /* Try iconv with transliteration. */ if ( Horde_Util :: extensionExists ( 'iconv' ) ) { unset ( $ php_errormsg ) ; ini_set ( 'track_errors' , 1 ) ; $ out = @ iconv ( $ from , $ to . '//TRANSLIT' , $ input ) ; $ errmsg = isset ( $ php_errormsg ) ; ini_restore ( 'track_errors' ) ; if ( ! $ errmsg && $ out !== false ) { return $ out ; } } /* Try mbstring. */ if ( Horde_Util :: extensionExists ( 'mbstring' ) ) { $ out = @ mb_convert_encoding ( $ input , $ to , self :: _mbstringCharset ( $ from ) ) ; if ( ! empty ( $ out ) ) { return $ out ; } } return $ input ; }
docstring: Internal function used to do charset conversion.
  
  @param string $input  See self::convertCharset().
  @param string $from   See self::convertCharset().
  @param string $to     See self::convertCharset().
  
  @return string  The converted string.
docstring_tokens: Internal function used to do charset conversion .