J'utilise la fonction PHP imagettftext() pour convertir le texte en une image GIF. Le texte que je convertis contient des caractères Unicode, y compris le japonais. Tout fonctionne correctement sur ma machine locale (Ubuntu 7.10), mais sur mon serveur webhost, les caractères japonais sont mutilés. Qu'est-ce qui pourrait causer la différence? Tout devrait être encodé en UTF-8.fonction PHP imagettftext() et unicode
Broken Image sur le serveur webhost: http://www.ibeni.net/flashcards/imagetest.php
Copie image correcte de ma machine locale: http://www.ibeni.net/flashcards/imagetest.php.gif
Copie phpinfo() de ma machine locale: http://www.ibeni.net/flashcards/phpinfo.php.html
Copie phpinfo() de mon serveur webhost: http://example5.nfshost.com/phpinfo
Code:
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);
Pourquoi les entités UTF-8> HTML> conversion ISO-8859 au lieu de simplement UTF-8> ISO-8859? – deceze
+1 Tout comme deceze mentionné, j'irais probablement avec 'iconv ('UTF-8', 'ISO-8859-1', $ text)' au lieu de l'approche d'entité, mais autre que la conversion à ** hex la représentation ** est la voie à suivre! Merci pour le conseil! – Levit
confirmé ne fonctionne pas avec l'arabe – AbiusX