Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как бороться с кодировкой в GD

329
27 августа 2006 года
novadesign
144 / / 07.05.2003
Пытаюсь вывести русские буквы при использовании GD, пробовал ф-ции imagettftext, с указанием русскоязычного шрифта и imagestring. В заголовке пишу: header ("Content-type: image/png;charset=windows-1251"); но тем нименее выводятся каракули вместо русского. Подскажите пожалуйста как с этим бороться?
8
27 августа 2006 года
mfender
3.5K / / 15.06.2005
Попробуй сделать такую функцию, которая буквы iso перекодирует в уникод:

 
Код:
function iso2uni ($iso){
    $uni="";
    for ($i=0; $i < strlen($iso); $i++){
        $thischar=substr($iso,$i,1);
        $charcode=ord($thischar);
        $uni.=($charcode>175)?"&#".(1040+($charcode-176)).";":$thischar;
    }
    return $uni;
}


и скармливай ей строку, концертируя её из win в iso:

 
Код:
imagettftext($im, $size, $angle, $x, $y, $FontColor, $FontFile, iso2uni(convert_cyr_string("твой текст", "w", "i")));
329
27 августа 2006 года
novadesign
144 / / 07.05.2003
Спасибо, за идею, она действительно помогла, только для того чтоб преобразововать русские символы в уникод их сначало нужно перевести в iso8859-5

Вот пример:

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;
}
832
27 августа 2006 года
Carpus
390 / / 14.04.2005
Преобразовать символы из одной кодировки в другую проще всего при помощи функции iconv() - iconv("Windows-1251", "UTF-8", "Это тест");
256
28 августа 2006 года
foxweb
1.0K / / 27.07.2005
[QUOTE=novadesign]В заголовке пишу: header ("Content-type: image/png;charset=windows-1251");[/QUOTE]

Хе! Если ты выводишь КАРТИНКУ и на картинке РИСУЕШЬ текст, то как по-твоему HTTP-заголовок может повлиять на надпись на картинке???

Проблему эту я решил так. Сделал папку шрифтов и начал отбирать те, в которых каракули не выводились. Ну а те которые с каракулями пришлось выкинуть. ИМХО исходя из этого есть "правильные" и "неправильные" русские шрифты ;)
8
28 августа 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=foxweb]Ну а те которые с каракулями пришлось выкинуть. ИМХО исходя из этого есть "правильные" и "неправильные" русские шрифты ;)[/QUOTE]
Переходи на Юникод - там "неправильных" нету.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог