PHP+MySQL: Error con los caracteres especiales

Hola, tengo un problema que me resulta cuanto menos, curioso. Tengo un server apache2 con php y mysql y me pasa lo siguiente: no me muestra bien los caracteres especiales.

Por ejemplo: lo que debería ser "¡Ñ" muestra: "¡ñ"

He probado:

-He revisado el charset en el HTML (ISO-8859-1). Funcionan los caracteres
-He revisado PHP. Pintando la cadena, lo hace correctamente.
-He revisado el registro en la BBDD. Tanto por consola como usando PHPMYADMIN funciona correctamente.
-He cambiado el cotejamiento en la tabla, por si pudiera ser eso

¿Por qué al realizar la consulta por php falla?

Debo disculparme porque ni se me ocurre qué terminos buscar en el google para empezar, así que agradecería cualquier pista.

Os pongo las versiones de software:


-Gentoo actualizado
-Apache 2 (20020903)
-MySQL 4 (4.1.20)
-PHP 5 (5.1.4-pl0-gentoo)

Gracias de antemano


SOLUCIÓN:

Añadí lo siguiente a /etc/mysql/my.conf para forzar MySQL a trabajar con el charset latin1 contra PHP.

[php-cli] 
default-character-set=latin1   

[php-cgi-fcgi] 
default-character-set=latin1   

[php-apache2handler] 
default-character-set=latin1


Me costó bastante, pero al final la búsqueda dió resultado. Salu2 y gracias

Fuente: Gentoo Forums
Echale un ojo a las funciones htmlentities, htmlspecialchars_decode y htmlspecialchars.
Se me olvidó comentar, el fallo a venido a raiz de actualizar de apache1 y php4. Me refiero a que la semana pasada todo funcionaba perfecto. Por tanto, no creo que se trate de eso, pero mil gracias por el consejo. Salu2

PD: Seguí los manuales que hay en gentoo (mi distro) para actualizar PHP, y apache2 lo tenía anteriormente.
2 respuestas