Re: [PHP-ES] Símbolo del Euro con la GD

[email protected] (Eduardo Huertas) Thu, 10 May 2012 14:43:38 +0200
Newsgroups php.general.es
Message-ID <CAOkfiTkgqFvhNsnFMNkwv17i_e=DDXCYWuM8Q3t0ij4KqV_t=A@mail.gmail.com>
El día 10 de mayo de 2012 13:38, Gorka <[email protected]> escribió:
> Lo creo (de cero) con 'joe' (en Debian) y pego este contenido en él (tal y como estoy haciendo en este mensaje):
>
> <html>
> <head><title>Pruebas</title><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></head>
> <body bgcolor="grey">
> <?
>
> function save_imagepng($img,$fname){
> ob_start();// store output
> imagePNG($img);// output to buffer
> file_put_contents($fname, ob_get_contents(), FILE_BINARY);// write buffer to file
> ob_end_clean();// clear and turn off buffer
> }
>
> $im = imagecreatetruecolor(300, 30);
> $fondo = imagecolorallocate($im, 0, 0, 0);
> $color_texto = imagecolorallocate($im, 0, 0, 255);
> imagecolortransparent($im, $fondo);
> $valor = "€*&euro;*".utf8_encode('€')."*".utf8_encode('&euro;');
> imagestring($im, 5, 0, 0, $valor, $color_texto);
> $strNom_precio = 'precio';
> save_imagepng($im, $strNom_precio.'.png');
> $strPrecio = '<img src="'.$strNom_precio.'.png" />';
> echo $strPrecio;
> echo '<br>';
> echo $valor;
>
> ?>
> </body>
> </html>
>
> Debería estar en utf-8, tal y como he definido en el charset, ¿no? (mi editor 'joe' no creo que cambie esto). Pues no sale bien ninguno de los símbolos del € del ejemplo para $strPrecio (como imagen). En cambio para $valor (como texto) sí que se imprimen todos (menos el tercero) correctamente.

Que hayas puesto en la cabecera charset=utf-8 no implica que el
archivo que contiene el código fuente esté codificado en utf-8.
Adjunta el archivo del script.

Otra cosa que sería interesante es que comprobases lo que te devuelve
la instrucción locale en tu debian.

Y con más calma, ya me explicarás por qué usas joe, hace siglos que no
sé de nadie que lo use :)

Saludos.