Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> iconv ошибка 86 
:(
    Опции темы
teroni
Дата 17.11.2007, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Код

$page = iconv('UTF-8', 'CP1251', $html);

Выдает на хостинге:
Код

Notice: iconv(): Unknown error (86)

И, соответственно, iconv возвращает пустую строку. На локалке - все в порядке. И на хостинге иногда этот код работал, а сейчас вот перестал.
Хостинг:
Код

PHP Version 4.3.11
iconv support    enabled
iconv implementation    unknown
iconv library version    unknown
iconv.input_encoding    ISO-8859-1    ISO-8859-1
iconv.internal_encoding    ISO-8859-1    ISO-8859-1
iconv.output_encoding    ISO-8859-1    ISO-8859-1

Что делать? Есть ли способы перевода UTF-8 в CP1251 без iconv()?
PM MAIL   Вверх
sTa1kEr
Дата 18.11.2007, 03:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 5
Всего: 146



Цитата(teroni @  17.11.2007,  20:46 Найти цитируемый пост)
И, соответственно, iconv возвращает пустую строку. На локалке - все в порядке. И на хостинге иногда этот код работал, а сейчас вот перестал.

Вероятно, нужно обновить iconv на хостинге.

Цитата(teroni @  17.11.2007,  20:46 Найти цитируемый пост)
Что делать? Есть ли способы перевода UTF-8 в CP1251 без iconv()? 

Конечно, лучшая альтернатива - это mb_string
Код

$str = mb_convert_encoding($str, "Windows-1251", "UTF-8");

PM MAIL   Вверх
teroni
Дата 18.11.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Да вот на другом форуме помогли функцией, может кому-то еще пригодится:
Код

    function Encode($str, $type = 'w'){
    // $type:
    // 'w' - encodes from UTF to win
    // 'u' - encodes from win to UTF

        static $conv='';

        if (!is_array ( $conv )){
            $conv=array ();
            for ( $x=128; $x <=143; $x++ ){
                $conv['utf'][]=chr(209).chr($x);
                $conv['win'][]=chr($x+112);
            }

            for ( $x=144; $x <=191; $x++ ){
                $conv['utf'][]=chr(208).chr($x);
                $conv['win'][]=chr($x+48);
            }

            $conv['utf'][]=chr(208).chr(129);
            $conv['win'][]=chr(168);
            $conv['utf'][]=chr(209).chr(145);
            $conv['win'][]=chr(184);
        }

        if ( $type=='w' )
            return str_replace ( $conv['utf'], $conv['win'], $str );
        elseif ( $type=='u' )
            return str_replace ( $conv['win'], $conv['utf'], $str );
        else
            return $str;
    }

А хостера явно надо пинать, mb_string`а нет конечно и iconv какой-то глючный.
PM MAIL   Вверх
teroni
Дата 18.11.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Хотя и эта функция не фонтан - в утф переводит с глюками.. В итоге из roundcubemail выдрал нужную мне smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.