ImageString выводит бред вместо русских символов...

BlackIce

Guest
ImageString выводит бред вместо русских символов...

вызываю картинку вот таким образом
PHP:
<img src="sign.php?s=йцуфывqwe" width=138 height=10 alt="" border=0 align="top">
вот sign.php
PHP:
session_start();
require_once("fns/user_fns.php");

$height = 10;
$width = 138;
$sign = ImageCreate($width, $height);

$gray = ImageColorAllocate ($sign, 224,224,224);
$red =  ImageColorAllocate ($sign, 255,0,0);

ImageFill ($sign,1,1,$gray);
ImageString ($sign,3,6,-1,"$s",$red);

Header ("content-type: image/png");
ImagePng ($sign);
ImageDestroy ($sign);
Проблема состоит в том, что нормально отображаются только английские символы, вместо русских выводится абракадабра....может кто чего посоветовать сможет?
 

Фанат

oncle terrible
Команда форума
я могу посоветовать
а) поиск по форуму.
б) не писать на картинках в динамике по запросу юзера.
может конфуз выйти...
 

SiMM

Новичок
Beat, и какое эта ссылка имеет отношение к функции [m]imagestring[/m]?
http://php5.ru/articles/image#text

> В PHP нету стандартных средств кодировки в Unicode для кириллицы
[m]iconv[/m]
 

SiMM

Новичок
> саме пряме
Я ещё раз повторяю свой вопрос - какое это имеет отношение к использованию функции [m]imagestring[/m]? Если не доходит смысл вопроса - приведите кусок кода, который используя [m]imagestring[/m] и функцию cyr_code (которая не имеет никакого отношения к UTF-8 несмотря на ссылку) выводит русский текст. И ещё - до того как будете его приводить здесь - убедитесь, что оно работает и действительно выводит русский текст.
 

BlackIce

Guest
2 SiMM
Спасибо большое...
2 Фанат
эти картинки не для пользователей будут ;)
 

litledi

Новичок
//ImageString($im, $font, $x, $y, $str, $col);
ImageTtfText ($im, $font, 0, $x, $y, $col , TTF_DIR."verdana.ttf", win2uni($str));
где
TTF_DIR - где валяются шрифты в частности verdana.ttf
function win2uni($s)
{
$s = convert_cyr_string($s,'w','i'); // преобразование win1251 -> iso8859-5
// преобразование iso8859-5 -> unicode:
for ($result='', $i=0; $i<strlen($s); $i++)
{
$charcode = ord($s[$i]);
$result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}
 
Сверху