Проблема с обрезкой строк в UTF8

Автор Nik, 12 октября 2009, 10:00:28

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Nik

После обновления движка в списке тем заголовок последнего ответа стал выводиться криво ("Re: Каким брау�..."). Когда-то находил уже решение этой проблемы на этом форуме, но сейчас всё перерыл - и не вижу, блин, в упор  :(  Ткните, плиз, носом...
И время всякому делу под небесами!
Lazarus: секреты и советы.


Mavn

это скорее всего при быстром редактировании происходит. там разница в длине названия темы при создании полном редактировании и быстром редактировании они разные если мне память не изменяет
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Nik

Раньше и работало нормально, но после заливки начисто RC1.2 (до того обновлял патчами) - вылезли глюки (www.forum.megabyte-web.ru).
Что интересно, у некоторых тем глюк не проявляется. Но закономерности пока не понял (в некоторых темах с быстрым ответом - есть глюк, в других - нет).
И время всякому делу под небесами!
Lazarus: секреты и советы.

digger®

Цитата: Nik от 12 октября 2009, 15:01:35
Раньше и работало нормально, но после заливки начисто RC1.2 (до того обновлял патчами) - вылезли глюки (www.__forum.megabyte-web.ru).
Что интересно, у некоторых тем глюк не проявляется. Но закономерности пока не понял (в некоторых темах с быстрым ответом - есть глюк, в других - нет).

Проявляется там, где двухбайтовый символ обрезало напополам.

Nik

Цитата: digger от 12 октября 2009, 17:47:18
Проявляется там, где двухбайтовый символ обрезало напополам.
Решение есть какое-нибудь?
И время всякому делу под небесами!
Lazarus: секреты и советы.


Nik

Цитата: stepan_kv от 13 октября 2009, 10:10:30
ТУТ глянь.
Замена функции по описанным методам (пробовал оба варианта) приводит к ошибке:
Fatal error: Function name must be a string in /****/Sources/Subs.php on line 827
И время всякому делу под небесами!
Lazarus: секреты и советы.

Stop-TussiN

Сам столкнулся с данной проблемой. Вот рабочий код SMF 2.0 RC2

// Shorten a subject + internationalization concerns.
function shorten_subject($subject, $len)
{
    global $smcFunc;

    // It was already short enough!
    if ($smcFunc['strlen']($subject) <= $len)
        return $subject;
$subject=iconv('UTF-8','windows-1251',$subject);
//$subject=mb_convert_encoding($subject,'CP1251','UTF-8');
    // Shorten it by the length it was too long, and strip off junk from the end.
//    return $func['substr']($subject, 0, $len) . '...';
$subject=$smcFunc['substr']($subject, 0, $len) . '...';
//$subject=mb_convert_encoding($subject,'UTF-8','CP1251');
$subject=iconv('windows-1251','UTF-8',$subject);
return $subject;
}

Nik

Цитата: Stop-TussiN от 10 января 2010, 22:04:38
Сам столкнулся с данной проблемой. Вот рабочий код SMF 2.0 RC2
Вот это помогло. Спасибо! :)
И время всякому делу под небесами!
Lazarus: секреты и советы.

walkman

Цитата: Stop-TussiN от 10 января 2010, 22:04:38
Сам столкнулся с данной проблемой. Вот рабочий код SMF 2.0 RC2
"Fatal error: Call to undefined function: iconv() in " -  не находит функцию iconv. Где она должна быть прописана?

Drakonsa

Цитата: walkman от 04 февраля 2010, 14:21:47
"Fatal error: Call to undefined function: iconv() in " -  не находит функцию iconv. Где она должна быть прописана?
php4 omg...



Drakonsa



Drakonsa

Цитата: digger от 04 февраля 2010, 22:04:34
Потому что php нужно с поддержкой нужных модулей собирать.
Ну это понятно, но не знал что iconv идет отдельно подключаемый модуль.

alexwin

ЦитироватьСам столкнулся с данной проблемой. Вот рабочий код SMF 2.0 RC2

// Shorten a subject + internationalization concerns.
function shorten_subject($subject, $len)
{
    global $smcFunc;

    // It was already short enough!
    if ($smcFunc['strlen']($subject) <= $len)
        return $subject;
$subject=iconv('UTF-8','windows-1251',$subject);
//$subject=mb_convert_encoding($subject,'CP1251','UTF-8');
    // Shorten it by the length it was too long, and strip off junk from the end.
//    return $func['substr']($subject, 0, $len) . '...';
$subject=$smcFunc['substr']($subject, 0, $len) . '...';
//$subject=mb_convert_encoding($subject,'UTF-8','CP1251');
$subject=iconv('windows-1251','UTF-8',$subject);
return $subject;
}


Stop-TussiN, спасибо большое.