Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Acentos y carácteres especialas en createImage

Estas en el tema de Acentos y carácteres especialas en createImage en el foro de PHP en Foros del Web. Buenas tardes, estoy añadiendo texto en una imagen creada y tengo problemas con los acentos (salen carácteres extraños). Tengo un archivo donde cargo la imagen ...
  #1 (permalink)  
Antiguo 23/02/2014, 09:16
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Acentos y carácteres especialas en createImage

Buenas tardes,

estoy añadiendo texto en una imagen creada y tengo problemas con los acentos (salen carácteres extraños).

Tengo un archivo donde cargo la imagen <img src="crear_imagen.php" /> que he añadido <meta charset="utf-8" />.

En el archivo php "crear_imagen.php" he utilizado "utf_encode();" pero sin resultado. He estado utilizando funciones como "mb_convert_encoding" pero no consigo el resultado esperado.

Alguna solución?

Gracias

Saludos
  #2 (permalink)  
Antiguo 23/02/2014, 09:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acentos y carácteres especialas en createImage

No confundas texto en una imagen que texto en un archivo de... ¿texto?

Es obvio que la codificación de la pagina no afectará el texto de la imagen, ¿no te parece algo tonto?

Si la imagen la creaste mal no hay forma de corregirla, debes crearla de nuevo procurando que el texto se dibuje correctamente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/02/2014, 09:53
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Acentos y carácteres especialas en createImage

Hola,

como he comentado he estado probando de varias maneras pues de ninguna he conseguido el resultado esperado. Aunque se que el meta no afectará la imagen lo he puesto también.

En el archivo php "crear_imagen.php" estoy haciendo:

Código PHP:
$texto utf8_encode("María");

$negro=imagecolorallocate($img,0,0,0);

imagestring($img,3,0,0,$texto ,$negro); 
Y cuando se muestra por pantalla la imagen aparece -->"MarÀÂSa"

Saludos
  #4 (permalink)  
Antiguo 23/02/2014, 10:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acentos y carácteres especialas en createImage

¿Ese es todo tu código?

Sería bueno que muestres el 100% de las cosas que haces ya que adivinar es imposible.

Otra cosa importante, es que la codificación de tu archivo sí sea UTF-8 (sin BOM) para tomar el acento literal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 23/02/2014, 10:27
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Acentos y carácteres especialas en createImage

Hola,

el código completo del archivo crear_imagen.php es:


Código PHP:
<?php

header
("Content-type: image/gif");

$img=imagecreatefromgif("plantilla.gif");

//$texto = utf8_encode($_GET['texto']);

$texto utf8_encode("María"); 

$negro=imagecolorallocate($img,0,0,0); 

imagestring($img,3,0,0,$texto ,$negro);  



imagegif($img);

imagedestroy($img);

?>
Saludos
  #6 (permalink)  
Antiguo 23/02/2014, 10:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acentos y carácteres especialas en createImage

Pues a mi me funciona perfecto, todos mis archivos son UTF-8 (la codificación del archivo, no del documento).
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 23/02/2014, 10:32
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Acentos y carácteres especialas en createImage

Hola,

El archivo está guardado con utf8 sin bom.

Te funciona sin problemas mi ejemplo? Puedes ver por pantalla María en vez de carácteres extraños?

Saludos
  #8 (permalink)  
Antiguo 23/02/2014, 10:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acentos y carácteres especialas en createImage

Claro, me funciona bien.

La única diferencia es que yo usé utf8_decode() para corregir el texto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 23/02/2014, 10:44
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Acentos y carácteres especialas en createImage

Hola,

tienes razón, usando utf8_decode se ve bien, pero he realizado esta prueba :


Código PHP:
$texto utf8_decode("áàéèíìóòúù"); 

y aparece esto por pantalla:



Saludos
  #10 (permalink)  
Antiguo 23/02/2014, 10:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acentos y carácteres especialas en createImage

Te sugiero leer el manual al respecto, cuando imprimes texto debes entender que el conjunto de caracteres puede estar limitado, si usas TTF sería lo mejor ya que hay muchas fuentes que cuentan con un conjunto de caracteres amplio.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 23/02/2014 a las 11:49
  #11 (permalink)  
Antiguo 23/02/2014, 11:33
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Acentos y carácteres especialas en createImage

Hola,

tienes razón, estoy usando:


Código PHP:
$font 'arial.ttf';
imagettftext($img,12,0,0,0,$negro,$font,$texto); 

y ahora se ve perfecto. Incluso la "ñ".

Gracias.

Saludos

Etiquetas: acentos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:02.