@maiskiykot
Free coder

Почему GD2 не отрисовывает русские символы на сервере apache?

Есть простенький скрипт на GD2 - наносит надписи на кнопки. Сайт сделан на win-1251. Проблема в том, что на локалхосте этот скрипт замечательно работает под PHP 5.6.2. Однако на сервере он не хочет отрисовывать русские буквы. Т.е. латиница идет на ура, а русские - ломает картинку (остается только крестик) и ничего! Вопрос в следующем: что нужно подкрутить на сервере, чтобы заработало? Этот скрипт молотил у меня доселе лет 10.
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 3
@BorisKorobkov Куратор тега PHP
Web developer
Во-первых, использовать UTF-8.

Во-вторых, полагаться не на дефолтный шрифт, а явно указать путь к TTF-файлу со шрифтом (предварительно убедившись, что он поддерживает кириллицу).
Ответ написан
WNeZRoS
@WNeZRoS
Ломается картинка скорее всего из-за ошибок, которые отправляются вместо или вместе с картинкой.
Вероятно шрифт не нашёлся или сам GD2.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Попробуйте перекодировать в юникод:
function unicode_russian($str) {
     $encode = "";
     for ($ii=0;$ii<strlen($str);$ii++) {
         $xchr=substr($str,$ii,1);
         if (ord($xchr)>191) {
             $xchr=ord($xchr)+848;
             $xchr="&#" . $xchr . ";";
         }
         if(ord($xchr) == 168) {
               $xchr = "&#1025;";
         }
         if(ord($xchr) == 184) {
               $xchr = "&#1105;";
         }
         $encode=$encode . $xchr;
   }
     return $encode;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы