Estoy usando la función PHP imagettftext() para convertir texto en una imagen GIF. El texto que estoy convirtiendo tiene caracteres Unicode, incluido el japonés. Todo funciona bien en mi máquina local (Ubuntu 7.10), pero en mi servidor de host web, los caracteres japoneses están destrozados. ¿Qué podría estar causando la diferencia? Todo debe estar codificado como UTF-8.Función PHP imagettftext() y unicode
Imagen quebrada en el servidor de hosting: http://www.ibeni.net/flashcards/imagetest.php
Copia de la imagen correcta de mi máquina local: http://www.ibeni.net/flashcards/imagetest.php.gif
Copia de phpinfo() de mi máquina local: http://www.ibeni.net/flashcards/phpinfo.php.html
Copia del phpinfo() desde mi servidor de host web: http://example5.nfshost.com/phpinfo
Código:
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);
¿Por qué UTF-8> entidades HTML> conversión ISO-8859 en lugar de simplemente UTF-8> ISO-8859? – deceze
+1 Tal como lo mencionó el engaño, probablemente usaría 'iconv ('UTF-8', 'ISO-8859-1', $ text)' en lugar del enfoque de entidad, pero aparte de eso, la conversión a ** hexadecimal representación ** es el camino a seguir! ¡Gracias por la propina! – Levit
confirmado NO funciona con árabe – AbiusX