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

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


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

Ну, собственно, сабж, отображается закорючками. Причем сначала все было ок, потом я залез в настройку этих самых логотипов и все слетело к чертям :) Какие настройки я только не пробовал, либо закорючки (если стоит 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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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