Foros del Web » Programando para Internet » PHP »

Acentos en funciones PHP

Estas en el tema de Acentos en funciones PHP en el foro de PHP en Foros del Web. Muy buenas, el tema está en que cuando llamo a una función de una libreria creada por mi en PHP para que me muestre el ...
  #1 (permalink)  
Antiguo 03/06/2008, 14:34
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
Acentos en funciones PHP

Muy buenas,

el tema está en que cuando llamo a una función de una libreria creada por mi en PHP para que me muestre el índice de mi página web, me aparecen las palabras del índice que tienen que llevar tilde con una simbología rara. Por ejemplo INVESTIGACIÓN me aparece como INVESTIGACIÃ"N.

He probado a copiar el código de la función directamente en una de las páginas y así si que m epilla bien el texto, pero en cuanto paso el código de la función a una libreria y llamo a la función despues de haber hecho el include de la libreria, me vuelven a aparecer los carácteres raros.

Os pongo un ejemplo simplificado de una de las funciones:

LIBRERIA.PHP
<?PHP
// Función que muestra el PIE DE PAGINA
function footer()
{
?>
camión
<?PHP
}
?>

TEST.PHP
<html>
...
<?PHP include('libreria.php'); ?>
<?PHP footer(); ?>

</html>

El resultado de esto sería: camiã"n

Alguién sabe como se puede solucionar este problema???

Muchas gracias
  #2 (permalink)  
Antiguo 03/06/2008, 14:39
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 en funciones PHP

debes especificar la codificacion correcta.... con un <meta/> o bien, usando header()

te recomiendo UTF8 .... facilmente la declaras asi (debe ir antes, y al inicio de cada pagina)

header('content-type: text/html; charset=utf-8');

o bien usa... <meta http-equiv="content-type" content="text/html; charset=UTF-8">

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 03/06/2008, 14:47
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Acentos en funciones PHP

Ostias tio! lo has clavado, ha sido poner la linea de <meta...UTF-8"> y ya se visualiza perfecto!

Pero porqué sucedía esto? solo pasaba cuando llamaba a la función y esta estaba en una librería, pero no si estaba definida dentro del propio fichero de la página web?

En cualquier caso, muchas gracias!!!

Un saludo!
LuFtH
SaLuD y aLeGriA!!!
  #4 (permalink)  
Antiguo 03/06/2008, 15:04
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 en funciones PHP

no te fijes... es un problema de codificación de caracteres... y no de programación, suerte!

si quieres saber mas... ya sabes que esta Google y Wikipedia ... geniales!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 08/07/2008, 16:23
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Duda: Acentos en funciones PHP

Qué tal:

No entendí cómo le hicieron para arreglar este problema de los acentos o dónde pusieron la referencia a la cabecera:

<?php header('content-type: text/html; charset=utf-8'); ?>

Porque si la coloco en las páginas de PHP llamadas "hijas" (las que son llamadas con un include), no funcionan simplemente porque la página "padre" ya contiene la cabecera, así que lanza el típico aviso:

Warning: Cannot modify header information - headers already sent by...

Era de esperarse que si se incluye la cabecera con la codificación, en la página padre, las hijas heredarían dicha codificación. Pero no, no pasa esto, en las hijas no se visualizan los acentos, solo en el padre. Así que la solución lógica sería esa, de colocar la referencia en las hijas, pero no se puede pues marca error de que ya fue definida antes.

Agradezco su ayuda. Saludos.
  #6 (permalink)  
Antiguo 08/07/2008, 23:06
 
Fecha de Ingreso: enero-2006
Mensajes: 47
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Duda: Acentos en funciones PHP

Cita:
Iniciado por DonHomero Ver Mensaje
Qué tal:

No entendí cómo le hicieron para arreglar este problema de los acentos o dónde pusieron la referencia a la cabecera:

<?php header('content-type: text/html; charset=utf-8'); ?>

Porque si la coloco en las páginas de PHP llamadas "hijas" (las que son llamadas con un include), no funcionan simplemente porque la página "padre" ya contiene la cabecera, así que lanza el típico aviso:

Warning: Cannot modify header information - headers already sent by...

Era de esperarse que si se incluye la cabecera con la codificación, en la página padre, las hijas heredarían dicha codificación. Pero no, no pasa esto, en las hijas no se visualizan los acentos, solo en el padre. Así que la solución lógica sería esa, de colocar la referencia en las hijas, pero no se puede pues marca error de que ya fue definida antes.

Agradezco su ayuda. Saludos.

Hola

Una solución a tu problema es que puedes configurar el servidor Web que estes utilizando para que te codifique y encodifique los cantenidos con UTF-8. Si utilizas apache en www.apache.org esta la documentacion para configurar dicho servidor
Te direcciono ahi para que busques la configuracion de la version que estes utilizando. Si no utilizas apache puedes buscar la documentación del servidor que estes utilizando, debido a que esto lo utilizan todos los servidores
  #7 (permalink)  
Antiguo 09/07/2008, 03:14
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Acentos en funciones PHP

Gracias por responder. Si ya revisé la configuración del Apache pero nada. Pero ya descubrí la solución que nada que ver con cabeceras o el Apache. Era tan simple que hasta pena me da mencionarla, pero lo haré por aquellos quienes están sufriendo igual que yo lo hacía. Era simplemente la codificación del archivo de texto. Definitivamente ya no vuelvo a usar el block de notas para hacer scripts en php

Saludos y gracias por la ayuda.
Bye
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.
Tema Cerrado




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