Gracias, eso ha funcionado, pero sigo con un problema.
Como ya tengo mucho datos en la base de datos, no puedo ir cambiando uno por uno por uno todos los caracteres, asi que al mostrarlo, he usado htmlentities($cadena); que te transforma los caracteres "extraños" en entidades HTML tal y como tu me dices. (porque htmlspecialchars no me ha funcionado)
El problema es que parece que los tranforma todos, incluso la ñ, excepto el simbolo del euro €...
Para esto he mirado la documentacion de php.net y parece que hay que especificarle un "charset" correcto, porque por lo visto el ISO-8859-1, el por defecto, no contiene el simbolo del euro, sin embargo, ISO-8859-15 si, por lo tanto, la linea que he escrito es esta:
Código PHP:
htmlentities($cadena,ENT_QUOTES,"ISO-8859-15");
Aun asi, no me saca bien el simbolo del euro, alguien me presta algo de ayuda, por favor? gracias