Я использую функцию PHP imagettftext() для преобразования текста в GIF-изображение. Текст, который я конвертирую, имеет символы Юникода, включая японский. Все работает нормально на моей локальной машине (Ubuntu 7.10), но на моем сервере веб-хостинга японские персонажи искалечены. Что может быть причиной разницы? Все должно быть закодировано как UTF-8.PHP function imagettftext() и unicode
Разбитого Изображение на хостинговом сервере: 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);
Почему объекты UTF-8> HTML> Преобразование ISO-8859 вместо простого UTF-8> ISO-8859? – deceze 2012-02-26 23:38:23
+1 Так же, как упоминалось выше, я бы, вероятно, пошел с `iconv ('UTF-8', 'ISO-8859-1', $ text)` вместо подхода сущности, но кроме этого преобразование в ** hex представление ** - это путь! Thx для подсказки! – Levit 2014-08-31 14:12:22
подтверждено, что НЕ работает с арабским – AbiusX 2015-02-07 22:34:12