Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_encoding - Convert character encoding

Описание

string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

mb_convert_encoding() converts character encoding of string str from from_encoding to to_encoding.

str : String to be converted.

from_encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.

Пример 1. mb_convert_encoding() example
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");

Пример эмуляции функции mb_convert_encoding

function utf2entity($s) {
    // если можем, то используем функцию mb_convert_encoding…
    if (function_exists('mb_convert_encoding')) 
      return mb_convert_encoding($s, 'HTML-ENTITIES', 'UTF-8');

    //… иначе раскодируем UTF вручную
    $tgt = '';
    for($i=0,$len=strlen($s); $i<$len; $i++) {
        $c = $s[$i];
        $x = ord($c);
        if ($x < 0x80) { // 1-байтовый символ
            $tgt .= $c;
            continue;
        } elseif (($x & 0xC0) == 0xC0) { // (n+1)-байтовый символ
            $n = 1;
            while ( ($x & (0x40 >> $n)) > 0) $n++;
            $code = $x & (0x3F >> $n);
            for ($k=1; $k<=$n; $k++) {
                $y = ord($s[$i+$k]) & 0x3F;
                $code = ($code << 6) + $y;
            }
            $i += $n;
            // В переменной $code содержится Unicode-код текущего символа. 
            // Здесь можно преобразовать его в нужную нам 8-битную кодировку 
            // или просто сделать из него HTML-entity.
            $tgt .= '&#x'.dechex($code).';';
        } else {
            $tgt .= '?'; // такого не должно быть
        }
    }
    return $tgt;
}

Смотрите также mb_detect_order().

Все функции строки
Все функции перекодирование
Описание на ru2.php.net
Описание на php.ru