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

Ajax и utf-8 - ну сил просто уже нет...

Тема в разделе "Web Coding", создана пользователем xwande, 2 апр 2007.

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

    xwande Постоялец

    Регистр.:
    24 мар 2007
    Сообщения:
    134
    Симпатии:
    24
    Есть CMS - мамбо/джомла. Поставил на нее FAQ на ajax - mosKnowledgeBase ( http://www.phil-taylor.com/Joomla_Components/mosKnowledgeBase/)

    В принципе, тот трабл, что был с перекодировкой решился просто - $xajax->setCharEncoding('windows-1251');
    далее, удалена $xajax->decodeUTF8InputOn(); и вот оно счастье, теперь можно прочесть текс... но...

    в админке в одном из разделов где опять же все на ajax выводит заголовки вообще непонятной кодировкой, причем именно один раздел, и в нем заголовки тем...

    Кто-нибудь сталкивался с этим скриптом? И есть ли варианты решить вопрос перекодировки глобально как-то для всех скриптов, чтобы с каждым так не мучаться?
     
  2. Black Nuller

    Black Nuller Создатель

    Регистр.:
    12 сен 2006
    Сообщения:
    35
    Симпатии:
    10
    Код:
    function detect_utf($str) {
    	for ($i=0; $i<strlen($str); ++$i) {
    		if (ord($str[$i]) < 0x80) $n=0; # 0bbbbbbb
    		elseif ((ord($str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
    		elseif ((ord($str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
    		elseif ((ord($str[$i]) & 0xF0) == 0xF0) $n=3; # 1111bbbb
    		else return false; # Does not match any model
    	for ($j=0; $j<$n; $j++) { # n octets that match 10bbbbbb follow ?
    		if ((++$i == strlen($str)) || ((ord($str[$i]) & 0xC0) != 0x80)) return false;
    		}
    	}
    	return true;
    }
    Применение:
    Код:
    if (detect_utf($str)) кодируем из UTF в Win1251;
     
    xwande нравится это.
  3. xwande

    xwande Постоялец

    Регистр.:
    24 мар 2007
    Сообщения:
    134
    Симпатии:
    24
    о.. полезная функция, спасибо. Хотя в том скрипте нашел где он, гад делал перекодировку...
    $html = utf8_encode($tmpl->getParsedTemplate("listarticles"));
    теперь хоть буду знать что с остальными делать...
     
Статус темы:
Закрыта.