Не работает функция iconv(), а нужно конвертнуть из UTF-8 в windows-1251

Что же делать, когда на хостинге не работает функция iconv() и php выдает Call to undefined function:  iconv(), а нужно конвертнуть из UTF-8 в windows-1251

На помощь прийдет следующая функция:

function utf8_to_win($string){
    for ($c=0;$c         $i=ord($string[$c]);
        if ($i <= 127) @$out .= $string[$c];
            if (@$byte2){
                $new_c2=($c1&3)*64+($i&63);
                $new_c1=($c1>>2)&5;
                $new_i=$new_c1*256+$new_c2;
                if ($new_i==1025){
                    $out_i=168;
                } else {
                   if ($new_i==1105){
                        $out_i=184;
                    } else {
                        $out_i=$new_i-848;
                    }
                }
                @$out .= chr($out_i);
                $byte2 = false;
            }
            if (($i>>5)==6) {
                $c1 = $i;
                $byte2 = true;
            }
    }
    return $out;
}
?>

Оцени публикацию:
  • 20,93
Оценили человек: 20
  •  

Похожие статьи:


Комментарии посетителей:
  • Спасибо очень пригодилось!
    17 марта 2009, 17:04 коммент полезен : +2 # Гость
  • Спасибо!
    24 мая 2009, 20:42 коммент полезен : 0 # Гость
  • Реально очень полезная выручалка, в том случае если никак не получается совладать с кодировкой и локалями на серваке.
    26 мая 2009, 21:52 коммент полезен : 0 # Гость
  • Я замучался искать нормальный вариант) Спасибо!
    04 июля 2009, 22:41 коммент полезен : 0 # Гость
  • Большое ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!!!
    16 сентября 2009, 11:13 коммент полезен : 0 # Гость
  • Спасибо!!!
    03 декабря 2009, 18:33 коммент полезен : +1 # Гость
  • Как ты это сделал, демон!! О_О
    Большущее благодарю!
    28 декабря 2009, 12:46 коммент полезен : 0 # Гость
  • Автору респектище!!! Очень помог.
    10 февраля 2010, 18:28 коммент полезен : 0 # Гость
  • большое спасибо! очень полезная вещь!:-)8 :-D :-D
    12 мая 2010, 11:54 коммент полезен : +1 # Alex (гость)
  • Спасибо, автор.
    19 мая 2010, 09:42 коммент полезен : 0 # Иван Старосайтов (гость)
  • Человечище!(yea)
    04 июня 2010, 23:14 коммент полезен : 0 # Andrey (гость)
  • Огромное спасибо!
    18 июня 2010, 19:00 коммент полезен : 0 # Andrey_tatarstan
  • Молодцом!!! Так держать)))))
    01 июля 2010, 12:54 коммент полезен : 0 # Koste (гость)
  • Благодарю! Отличная функция. Предлагаю сделать функцию наоборот и для других кодировок;-)
    21 июля 2010, 19:07 коммент полезен : 0 # александр
  • а куда ее вставить? я в пхп не силен, у меня на каталоге VirtueMart такая хрень....причем первый раз...раньше как то не было...хз в чем проблема

    джумла 1.5.18
    27 июля 2010, 08:29 коммент полезен : +1 # Artemonuchin
  • Не всегда функция strlen() на хостингах включена, встречалась и такая проблема, поэтому еще один вариант, более актуальный:

    function utf8_to_win1251($text)
    {
       $text=str_replace("\xD0\xB0","а",$text);  $text=str_replace("\xD0\x90","А",$text);
       $text=str_replace("\xD0\xB1","б",$text);  $text=str_replace("\xD0\x91","Б",$text);
       $text=str_replace("\xD0\xB2","в",$text);  $text=str_replace("\xD0\x92","В",$text);
       $text=str_replace("\xD0\xB3","г",$text);  $text=str_replace("\xD0\x93","Г",$text);
       $text=str_replace("\xD0\xB4","д",$text);  $text=str_replace("\xD0\x94","Д",$text);
       $text=str_replace("\xD0\xB5","е",$text);  $text=str_replace("\xD0\x95","Е",$text);
       $text=str_replace("\xD1\x91","ё",$text);  $text=str_replace("\xD0\x81","Ё",$text);
       $text=str_replace("\xD0\xB6","ж",$text);  $text=str_replace("\xD0\x96","Ж",$text);
       $text=str_replace("\xD0\xB7","з",$text);  $text=str_replace("\xD0\x97","З",$text);
       $text=str_replace("\xD0\xB8","и",$text);  $text=str_replace("\xD0\x98","И",$text);
       $text=str_replace("\xD0\xB9","й",$text);  $text=str_replace("\xD0\x99","Й",$text);
       $text=str_replace("\xD0\xBA","к",$text);  $text=str_replace("\xD0\x9A","К",$text);
       $text=str_replace("\xD0\xBB","л",$text);  $text=str_replace("\xD0\x9B","Л",$text);
       $text=str_replace("\xD0\xBC","м",$text);  $text=str_replace("\xD0\x9C","М",$text);
       $text=str_replace("\xD0\xBD","н",$text);  $text=str_replace("\xD0\x9D","Н",$text);
       $text=str_replace("\xD0\xBE","о",$text);  $text=str_replace("\xD0\x9E","О",$text);
       $text=str_replace("\xD0\xBF","п",$text);  $text=str_replace("\xD0\x9F","П",$text);
       $text=str_replace("\xD1\x80","р",$text);  $text=str_replace("\xD0\xA0","Р",$text);
       $text=str_replace("\xD1\x81","с",$text);  $text=str_replace("\xD0\xA1","С",$text);
       $text=str_replace("\xD1\x82","т",$text);  $text=str_replace("\xD0\xA2","Т",$text);
       $text=str_replace("\xD1\x83","у",$text);  $text=str_replace("\xD0\xA3","У",$text);
       $text=str_replace("\xD1\x84","ф",$text);  $text=str_replace("\xD0\xA4","Ф",$text);
       $text=str_replace("\xD1\x85","х",$text);  $text=str_replace("\xD0\xA5","Х",$text);
       $text=str_replace("\xD1\x86","ц",$text);  $text=str_replace("\xD0\xA6","Ц",$text);
       $text=str_replace("\xD1\x87","ч",$text);  $text=str_replace("\xD0\xA7","Ч",$text);
       $text=str_replace("\xD1\x88","ш",$text);  $text=str_replace("\xD0\xA8","Ш",$text);
       $text=str_replace("\xD1\x89","щ",$text);  $text=str_replace("\xD0\xA9","Щ",$text);
       $text=str_replace("\xD1\x8A","ъ",$text);  $text=str_replace("\xD0\xAA","Ъ",$text);
       $text=str_replace("\xD1\x8B","ы",$text);  $text=str_replace("\xD0\xAB","Ы",$text);
       $text=str_replace("\xD1\x8C","ь",$text);  $text=str_replace("\xD0\xAC","Ь",$text);
       $text=str_replace("\xD1\x8D","э",$text);  $text=str_replace("\xD0\xAD","Э",$text);
       $text=str_replace("\xD1\x8E","ю",$text);  $text=str_replace("\xD0\xAE","Ю",$text);
       $text=str_replace("\xD1\x8F","я",$text);  $text=str_replace("\xD0\xAF","Я",$text);
       $text=str_replace("\xe2\x84\x96","№",$text);
       return $text;
    }
    25 сентября 2010, 14:49 коммент полезен : 0 # Гость
  • блин, заработало, полдня промучился над кодировками, thanks
    23 октября 2010, 18:36 коммент полезен : 0 # Vlad444 (гость)
  • Не легче загнать все сопоставления в массив ?
    07 ноября 2010, 15:17 коммент полезен : 0 # Илья
  • Огромное спасибо авторам! Очень помогли мне.
    06 июня 2011, 12:44 коммент полезен : 0 # Дмитрий4

Предложения и пожелания:
Ваше имя: Ваш E-mail:
Введите изображенные цифры:
Captcha

HTML (19)

CSS (36)

PHP (22)

MySQL (14)

JavaScript (57)

Flash (6)

XML (3)

Apache (34)

Дизайн (35)

Продвижение (31)

Программы (26)

Unix (11)

Интересное (37)


Справочники и учебники:


Последние комменты:

Новые заметки:

Защита сервера от ошибок в phpMyAdmin

HTML5 - новые виды атак

Социальные рекомендации Twitter в Google

Ашманов про стартапы

Skype Distributed Database Architecture

Erlang - лекарство при высоких нагрузках

Amazon Web Services: инструменты обеспечения масштабируемости и отказоустойчивости

Обсуждения на форуме:

некорректно отображается страница в браузерах

не могу войти в admin

Нужна критика идеи

Поиск по дополнительным полям и формам

Вопрос по категориям

Несколько вопросов по проекту.

Плагины, меню и интеграция

Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter| Здравствуйте, Гость | Войти | Регистрация| Карта сайта | RSS ленты
О проекте | Скачать CMS | Видеоуроки | Документация | Плагины | Форум | Идеи | Новости | Веб-мастеру | Контакты

YaPro CMS в Живом Журнале

YaPro CMS в Твитере

YaPro CMS в Одноклассниках

YaPro CMS в Яндекс.Блогах


youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2012 YaPro.Ru


Главная » Веб-мастеру » PHP »