Пример #1
0
function importer_charset($texte, $charset = 'AUTO') {
	// on traite le cas le plus frequent iso-8859-1 vers utf directement pour aller plus vite !
	if (($charset == 'iso-8859-1') && ($GLOBALS['meta']['charset']=='utf-8') && function_exists('utf8_encode')){
		$texte = corriger_caracteres_windows($texte, 'iso-8859-1','unicode');
		$texte = utf8_encode($texte);
		return $texte;
	}
	return unicode2charset(charset2unicode($texte, $charset));
}
Пример #2
0
function corriger_caracteres($texte)
{
    $texte = corriger_caracteres_windows($texte);
    $texte = supprimer_caracteres_illegaux($texte);
    return $texte;
}
Пример #3
0
/**
 * Importer un texte depuis un charset externe vers le charset du site
 *
 * Les caractères non resolus sont transformés en `&#123`;
 *
 * @param string $texte
 *     Texte unicode à importer
 * @param string $charset
 *     Charset d'origine du texte
 *     Par défaut (AUTO), le charset d'origine est celui du site.
 * @return string
 *     Texte transformé dans le charset site
 **/
function importer_charset($texte, $charset = 'AUTO')
{
    static $trans = array();
    // on traite le cas le plus frequent iso-8859-1 vers utf directement pour aller plus vite !
    if ($charset == 'iso-8859-1' && $GLOBALS['meta']['charset'] == 'utf-8') {
        $texte = corriger_caracteres_windows($texte, 'iso-8859-1', $GLOBALS['meta']['charset']);
        if (init_mb_string()) {
            if ($order = mb_detect_order() and mb_detect_order($charset)) {
                $s = mb_convert_encoding($texte, 'utf-8', $charset);
            }
            mb_detect_order($order);
            # remettre comme precedemment
            return $s;
        }
        // Sinon, peut-etre connaissons-nous ce charset ?
        if (!isset($trans[$charset])) {
            if ($cset = load_charset($charset) and is_array($GLOBALS['CHARSET'][$cset])) {
                foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
                    $trans[$charset][chr($key)] = unicode2charset('&#' . $val . ';');
                }
            }
        }
        if (count($trans[$charset])) {
            return str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
        }
        return $texte;
    }
    return unicode2charset(charset2unicode($texte, $charset));
}