Я использую функцию PHP imagettftext() для преобразования текста в GIF-образ. Текст, который я конвертирую, имеет символы Юникода, включая японский. Все работает нормально на моей локальной машине (Ubuntu 7.10), но на моем сервере веб-хостинга японские персонажи искалечены. Что может быть причиной разницы? Все должно быть закодировано как UTF-8.
Сломанное изображение на сервере веб-хостинга: http://www.ibeni.net/flashcards/imagetest.php
Копия правильного изображения с моей локальной машины: http://www.ibeni.net/flashcards/imagetest.php.gif
Копия phpinfo() с моей локальной машины: http://www.ibeni.net/flashcards/phpinfo.php.html
Скопировать phpinfo() с моего веб-хостинга: http://example5.nfshost.com/phpinfo
код:
mb_language('uni');
mb_internal_encoding('UTF-8');
header('Content-type: image/gif');
$text = '日本語';
$font = './Cyberbit.ttf';
// Create the image
$im = imagecreatetruecolor(160, 160);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
// Create some colors
imagefilledrectangle($im, 0, 0, 159, 159, $white);
// Add the text
imagettftext($im, 12, 0, 20, 20, $black, $font, $text);
imagegif($im);
imagedestroy($im);