@lexstile

Проблемы с кодировкой кириллицы при наложении текста на изображение?

Делаю наложение текста на картинку, с кириллицей проблемы:
5cc322c6d0e36397141294.gif
Код:
$frames = array(); // массив для хранения слайдов
$framed = array(); // массив для храниения интервалов смены слайдов

$width = $_GET['w'];
$height = $_GET['h'];
$text = $_GET['t'];
$arText = str_split($text);

for ($i = 0; $i < count($arText); $i++) {
	$txt .= $text[$i];
	ob_start();
	writeTextToGIF($txt, $width, $height);
	$frames[] = ob_get_contents(); // записываем в хранилище слайд из буфера
	$framed[] = 30; // записываем интервал до смены слайда
	ob_end_clean();
}

Если вместо функции writeTextToGIF() вставить ее содержимое и убрать цикл, записав последовательно каждую букву (применить код функции к каждому слайду), все работает корректно.
Результат:
5cc32376afe6b947012608.gif
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
profesor08
@profesor08 Куратор тега PHP
Сам файл должен быть в utf-8, данные должны быть в utf-8. Брать букву вот так mb_substr($txt, $i, 1, "UTF-8"). Попутно открываешь для себя многобайтные кодировки и функции для работы с ними, с префиксом mb_. Длину строки получаешь вот так: mb_strlen($name, "UTF-8")

$str = "привет бла бла бла";

echo strlen($str); // 33 wrong
echo mb_strlen($str); // 18 ok

echo $str[0]; // wrong
echo substr($str, 0, 1); // wrong
echo mb_substr($str, 0, 1); // ok
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы