PHP:¿Por qué en mi página se ven caracteres extraños en vez de tildes o eñes?
De Foros del Web
El problema suele ser la codificación de caracteres. El navegador es instruido para mostrar los caracteres usando una codificación X, mientras que la página está usando la codificación Y, y por eso se producen los errores.
Hay 2 lugares en donde debe coincidir la codificación de caracteres:
1.- Etiqueta META Content-Type
2.- Editor de texto (forma en la que guarda, depende del editor)
Hay que configurar uno de los dos para que coincida con la codificación de caracteres que usa el otro, lo ideal es que ambas estén en iso8859-1 (o Latin1), o aún mejor si están en UTF-8.
En caso de que no esté presente la etiqueta META, el navegador codificará la página como se lo indique la cabecera Content-Type que le envía el servidor. También puede configurarse esta cabecera HTTP desde la configuración del servidor (en el caso de Apache, en el archivo httpd.conf)
Pero en presencia de la etiqueta META, no es necesario preocuparse de esto.
Si se está usando una base de datos, es importante hacer que la misma también use la misma codificación de caracteres, en mysql configurando el "COLLATE" de toda la base o tabla por tabla.
En mi experiencia la configuración de la base de datos es la menos importante. Si se ven caracteres extraños en el navegador, las primeras cosas a revisar deberían ser la presencia de la etiqueta META (y su contenido) y luego la configuración del editor de texto que se esté usando, para que ambas coincidan.
--alvlin 19 Jun 2007
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
