1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Функция по смене кодировки

Тема в разделе "Web Coding", создана пользователем falc, 29 июн 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. falc

    falc

    Регистр.:
    6 авг 2006
    Сообщения:
    345
    Симпатии:
    203
    Есть такой код, как его заставить перекодировать из utf в cp-1251? Этот вариант у меня не работает. Применяется с аяксом, если это важно.

    PHP:
    function fixChars($str){
        global 
    $C;
        
        if (
    $C->decodeUTF8InputOn=='0') return $str;
        
    $sFuncToUse NULL;
        global 
    $sEncoding;

        if (
    function_exists('iconv'))
        {
            
    $sFuncToUse "iconv";
        }
        else if (
    function_exists('mb_convert_encoding'))
        {
            
    $sFuncToUse "mb_convert_encoding";
        }
        else if (
    $sEncoding == "CP-1251")
        {
            
    $sFuncToUse "utf8_decode";
        }
        else
        {
            return 
    $str;
        }

        if (
    $sFuncToUse)
        {
            if (
    is_string($str))
            {
                if (
    $sFuncToUse == "iconv")
                {
                    
    $sValue iconv("UTF-8"$sEncoding.'//TRANSLIT'$str);
                }
                else if (
    $sFuncToUse == "mb_convert_encoding")
                {
                    
    $sValue mb_convert_encoding($str$sEncoding"UTF-8");
                }
                else
                {
                    
    $sValue utf8_decode($str);
                }
            }
        }
        return 
    $sValue;
    }


    Добавлено через 7 минут
    кстати если поменять 4 строчку if ($C->decodeUTF8InputOn=='0') на if ($C->decodeUTF8InputOn=='1')

    то символы меняются на другие но текст не читабельный всё равно
     
  2. Nafania

    Nafania

    Регистр.:
    24 мар 2007
    Сообщения:
    167
    Симпатии:
    46
    Что это за объект $C и что делает функция decodeUTF8InputOn?
    Какая версия PHP стоит? Если 4, то подключен ли модуль iconv? Так как в стандартной поставке в PHP 4 его нет.
     
  3. falc

    falc

    Регистр.:
    6 авг 2006
    Сообщения:
    345
    Симпатии:
    203
    Скрипт прикрепил, это компонент для тэгирования новостей в джумле, функция в конце файла tag.class.php в корне.
    А версию пхп хостер не показывает вот:
     

    Вложения:

    • tags.v0.6.zip
      Размер файла:
      188,4 КБ
      Просмотров:
      1
  4. Nafania

    Nafania

    Регистр.:
    24 мар 2007
    Сообщения:
    167
    Симпатии:
    46
    А версию пхп и подключенные модули можно посмотреть через phpinfo();
     
  5. -Nou-

    -Nou- Постоялец

    Регистр.:
    29 апр 2007
    Сообщения:
    134
    Симпатии:
    12
    Код:
    $str  = iconv("UTF-8", "win-1251", "This is a test.");
    ы?)

    Кстати если подключен модуль Multi-Byte String Functions (это можно посмотреть в phpinfo()), то можно воспользоваться этим:
    Код:
    $str = mb_convert_encoding($str, "UTF-8", "win-1251");
     
Статус темы:
Закрыта.