HEX
Server: nginx/1.22.1
System: Linux iZuf67d4hh2ssx30nkok6dZ 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: www (1000)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/phpmyadmin/phpmyadmin_09ebd1f1eecc8873/libraries/charset_conversion.lib.php
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Charset conversion functions.
 *
 * @package PhpMyAdmin
 */
if (! defined('PHPMYADMIN')) {
    exit;
}

define('PMA_CHARSET_NONE', 0);
define('PMA_CHARSET_ICONV', 1);
define('PMA_CHARSET_RECODE', 2);
define('PMA_CHARSET_ICONV_AIX', 3);

// Finally detect which function we will use:
if ($cfg['RecodingEngine'] == 'iconv') {
    if (@function_exists('iconv')) {
        if ((@stristr(PHP_OS, 'AIX'))
            && (@strcasecmp(ICONV_IMPL, 'unknown') == 0)
            && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)
        ) {
            $PMA_recoding_engine = PMA_CHARSET_ICONV_AIX;
        } else {
            $PMA_recoding_engine = PMA_CHARSET_ICONV;
        }
    } else {
        $PMA_recoding_engine = PMA_CHARSET_NONE;
        PMA_warnMissingExtension('iconv');
    }
} elseif ($cfg['RecodingEngine'] == 'recode') {
    if (@function_exists('recode_string')) {
        $PMA_recoding_engine = PMA_CHARSET_RECODE;
    } else {
        $PMA_recoding_engine = PMA_CHARSET_NONE;
        PMA_warnMissingExtension('recode');
    }
} elseif ($cfg['RecodingEngine'] == 'auto') {
    if (@function_exists('iconv')) {
        if ((@stristr(PHP_OS, 'AIX'))
            && (@strcasecmp(ICONV_IMPL, 'unknown') == 0)
            && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)
        ) {
            $PMA_recoding_engine = PMA_CHARSET_ICONV_AIX;
        } else {
            $PMA_recoding_engine = PMA_CHARSET_ICONV;
        }
    } elseif (@function_exists('recode_string')) {
        $PMA_recoding_engine = PMA_CHARSET_RECODE;
    } else {
        $PMA_recoding_engine = PMA_CHARSET_NONE;
    }
} else {
    $PMA_recoding_engine = PMA_CHARSET_NONE;
}

/* Load AIX iconv wrapper if needed */
if ($PMA_recoding_engine == PMA_CHARSET_ICONV_AIX) {
    include_once './libraries/iconv_wrapper.lib.php';
}

/**
 * Converts encoding of text according to parameters with detected
 * conversion function.
 *
 * @param string $src_charset  source charset
 * @param string $dest_charset target charset
 * @param string $what         what to convert
 *
 * @return string   converted text
 *
 * @access  public
 *
 */
function PMA_convert_string($src_charset, $dest_charset, $what)
{
    if ($src_charset == $dest_charset) {
        return $what;
    }
    switch ($GLOBALS['PMA_recoding_engine']) {
    case PMA_CHARSET_RECODE:
        return recode_string($src_charset . '..'  . $dest_charset, $what);
    case PMA_CHARSET_ICONV:
        return iconv(
            $src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $what
        );
    case PMA_CHARSET_ICONV_AIX:
        return PMA_aix_iconv_wrapper(
            $src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $what
        );
    default:
        return $what;
    }
} //  end of the "PMA_convert_string()" function

?>