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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [UTF8->Win]Проблема с кодировкой, преобразовать &#1101&#1090&#1086 в "это" 
:(
    Опции темы
maugli
Дата 7.11.2007, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

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



Здраствуйте, не буду писать полностью вопрос т.к. обсуждается в другом форуме.
ссылка вот http://forum.woweb.ru/topic32307.html
Помогите пожалуйста решить проблему.
Извините если не правильно что-то сделал по отношению к создании темы.
Спасибо.
PM MAIL   Вверх
skyboy
Дата 7.11.2007, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 75
Всего: 260



будь добр, набросай основные тезисы проблемы. возможно, не каждый сможет(да и захочет) куда-то ещё идти и определять по теме, что уже получилось, а что - нет. 
а тему можно было бы назвать инфорамтивнее. Например
Цитата

Преобразовать "&#1101&#1090&#1086 &#105s" в "это is"
сращу и пример, и понятно, где именно проблемы с кодировкой...


Добавлено через 3 минуты и 37 секунд
maugli, я так понял, тебе не хватило окончательной и рабочей регулярки для замены - и все?

Это сообщение отредактировал(а) skyboy - 7.11.2007, 22:40
PM MAIL   Вверх
maugli
Дата 7.11.2007, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

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



skyboy, Извини smile назвал как смог
По поводу регулярки ты прав, если есть идеи напиши пожалуйста, буду очень благодарен.
А может там не только в регулярке дело, я уже запутался просто.
Спасибо.

Это сообщение отредактировал(а) maugli - 7.11.2007, 22:51
PM MAIL   Вверх
Sannis
Дата 8.11.2007, 10:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 6
Всего: 13



Могу привести как это реализовано в IPB, там есть что-то лишнее наверняка, но соответствия точно верные в первой функции. Надеюсь это вам поможет:
Код

    /*-------------------------------------------------------------------------*/
    // Convert decimal character references to UTF-8
    /*-------------------------------------------------------------------------*/
    /**
    * Convert a decimal character to UTF-8
    */
    function dec_char_ref_to_utf8($int=0)
    {
        $return = '';

        if ( $int < 0 )
        {
            return chr(0);
        }
        else if ( $int <= 0x007f )
        {
            $return .= chr($int);
        }
        else if ( $int <= 0x07ff )
        {
            $return .= chr(0xc0 | ($int >> 6));
            $return .= chr(0x80 | ($int & 0x003f));
        }
        else if ( $int <= 0xffff )
        {
            $return .= chr(0xe0 | ($int  >> 12));
            $return .= chr(0x80 | (($int >> 6) & 0x003f));
            $return .= chr(0x80 | ($int  & 0x003f));
        }
        else if ( $int <= 0x10ffff )
        {
            $return .= chr(0xf0 | ($int  >> 18));
            $return .= chr(0x80 | (($int >> 12) & 0x3f));
            $return .= chr(0x80 | (($int >> 6) & 0x3f));
            $return .= chr(0x80 | ($int  &  0x3f));
        }
        else
        { 
            return chr(0);
        }
        
        return $return;
    }

    /*-------------------------------------------------------------------------*/
    // Helper function
    /*-------------------------------------------------------------------------*/
    
    function dec_char_ref_to_utf8_hexdec( $matches )
    {
        return $this->dec_char_ref_to_utf8( hexdec( $matches[1] ) );
    }
    
    /*-------------------------------------------------------------------------*/
    // Convert Ajax unicode
    /*-------------------------------------------------------------------------*/
    
    function convert_unicode($t)
    {
        if ( strtolower($this->ipsclass->vars['gb_char_set']) == 'utf-8' )
        {
            return preg_replace_callback( '#%u([0-9A-F]{1,4})#i', array( &$this, 'dec_char_ref_to_utf8_hexdec' ), utf8_encode($t) );
        }
        else
        {
            return preg_replace_callback( '#%u([0-9A-F]{1,4})#i', create_function( '$matches', "return '&#' . hexdec(\$matches[1]) . ';';" ), $t );
        }
    }




--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
smartov
Дата 8.11.2007, 12:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



maugli, в php выше версии 5.0.0 можно сделать просто вот так
Код

<?

echo html_entity_decode('&#1101&#1090&#1086', null, 'UTF-8');

?>


p.s. но корректнее конечно ; ставить в конце спец символов. 
К сожалению показать не могу - оно сразу преобразуется в русские символы smile

Но у меня на 5.2.3 работает и без ;

Это сообщение отредактировал(а) smartov - 8.11.2007, 12:24
PM MAIL   Вверх
maugli
Дата 8.11.2007, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

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



Всем спасибо smile буд пробовать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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