function _api_convert_encoding_supports($encoding)
{
    static $supports = array();
    if (!isset($supports[$encoding])) {
        $supports[$encoding] = _api_get_character_map_name(api_refine_encoding_id($encoding)) != '';
    }
    return $supports[$encoding];
}
/**
 * This function checks whether two $encoding are equal (same, equvalent).
 * @param string/array $encoding1		The first encoding
 * @param string/array $encoding2		The second encoding
 * @param bool $strict					When this parameter is TRUE the comparison ignores aliases of encodings. When the parameter is FALSE, aliases are taken into account.
 * @return bool							Returns TRUE if the encodings are equal, FALSE otherwise.
 */
function api_equal_encodings($encoding1, $encoding2, $strict = false)
{
    static $equal_encodings = array();
    if (is_array($encoding1)) {
        foreach ($encoding1 as $encoding) {
            if (api_equal_encodings($encoding, $encoding2, $strict)) {
                return true;
            }
        }
        return false;
    } elseif (is_array($encoding2)) {
        foreach ($encoding2 as $encoding) {
            if (api_equal_encodings($encoding1, $encoding, $strict)) {
                return true;
            }
        }
        return false;
    }
    if (!isset($equal_encodings[$encoding1][$encoding2][$strict])) {
        $encoding_1 = api_refine_encoding_id($encoding1);
        $encoding_2 = api_refine_encoding_id($encoding2);
        if ($encoding_1 == $encoding_2) {
            $result = true;
        } else {
            if ($strict) {
                $result = false;
            } else {
                $alias1 = _api_get_character_map_name($encoding_1);
                $alias2 = _api_get_character_map_name($encoding_2);
                $result = !empty($alias1) && !empty($alias2) && $alias1 == $alias2;
            }
        }
        $equal_encodings[$encoding1][$encoding2][$strict] = $result;
    }
    return $equal_encodings[$encoding1][$encoding2][$strict];
}