Перейти к контенту

Проблема с кодировкой текста на изображении в заголовке


Рекомендуемые сообщения

Ну, собственно, сабж, отображается закорючками. Причем сначала все было ок, потом я залез в настройку этих самых логотипов и все слетело к чертям :) Какие настройки я только не пробовал, либо закорючки (если стоит windows-1252), либо вообще нет текста (1251). Пробовал юникод и юникодный шрифт - та же фигня :D Что делать, подскажите? Блог версии 1.2.2, форум 2.1.4. Ссылок дать не могу, стоит в локальной сети ;)
Ссылка на комментарий
Поделиться на других сайтах

Вы не поверете, но мне самостоятельно удалось устранить проблему ;) Причем не абы когда, а в 3 ночи! Если кого интересует: вот решение:

1. Добавляете функцию в файл modules\blog\lib\lib_blogfunctions.php:

 

function str ($in)
{
$out = "";
for ($i=0; $i < strlen($in); $i++) {
$char = ord($in[$i]);
$out .= ($char > 192)?"".(1040+($char-192)).";":$in[$i];
}
return $out;
}

 

Ищите в том же файле все строки, где используется функция imagettftext(); Там есть примерно такое:

imagettftext($im, $namesize, 0, $textleftpos-1, $namevpos-1, $shadow, $font, $blog_name);

 

Добавляете перед последним аргументов вызов функции str() и получаете:

 

imagettftext($im, $namesize, 0, $textleftpos-1, $namevpos-1, $shadow, $font, str($blog_name));

 

Так проделать со всеми аналогичными строками. Если вы используете другую функцию генерации изображение - алгоритм тот же.

 

Теперь в админке поставьте кодировку для текста на изображениях на unicode и используйте юникодовские шрифты.

 

Ну и на десерт, если у вас надписи не влезают в лого, найдите строку в том же файле:

 

$width = $textleftpos+5+($size[2]-$size[0]);

 

И замените на:

 

$width = $textleftpos+5+($size[2]-$size[0])+30;

 

Вроде бы все :D

Ссылка на комментарий
Поделиться на других сайтах

Нет, все-таки мой способ глючный, особенно учитывая тот факт, что в IPB уже есть перекодировщики в уникод, которые, тем не менее, не работают :D Помогите, что делать? ;)((
Ссылка на комментарий
Поделиться на других сайтах

Один хрен, не знаю, где это обсуждалось, я ниче не нашел. Кинул Arial, поставил кодировку unicode (windows-1251 вообще ниче не рисует). Результат - на моем блоге все нормально, на чужих блогах - закорючки. Это как?
Ссылка на комментарий
Поделиться на других сайтах

Блин, ребята, спасибо, что помогли! Вот помню, во времена, когда этот сайт назывался еще iospian.ru (или че-то типа того), когда всем правила Oska, когда только-только появился IBResource.ru, люди помогали друг другу куда охотнее, имхо. Хотя и трава тогда была, безусловно, зеленее... :|

 

А ларчик просто открывался: просто нужно было указать в качестве кодировки UTF-8, сам не понимаю, почему я пытался ее обозвать unicod'ом... :D

Ссылка на комментарий
Поделиться на других сайтах

Borland_delphi_6

 

сори не заметил тему, это баг самих блогов, почитал в мануале в последней версии этот баг исправлен, так что каай последнюю версию или обновляй шрифты :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.