mmm, es extraño, he solucionado parte del problema, pero no del todo.
Resulta que antes de la salida de texto, le hacía esto:
Código PHP:
ucfirst(strtolower($datosAviso['titulo']))
Si no le paso esas funciones, la ñ sí que la muestra, sin ni siquiera necesitar un utf8_decode() Pero lo que me interesaría es poder usar las funciones anteriores sin que se cargue eñes o acentos.
Por otro lado me he percatado de otro problema con otro campo que contiene un texto largo. Los saltos de línea son almacenados así: \r\n y entonces en la salida le hago un nl2br() para que me los convierta en <br />, pero no, los sigue mostrando como texto, y no hay ningún salto de línea.
Toda ayuda es bienvenida.