Gracias por responder hades87
Lo he leído en muchos sitios, lo de escribirlo directamente el código HTML del caracter, pero en mi caso, la mayoría del texto que muestro en la web lo obtengo de una BD y de una DLL, es decir para mi son strings y no texto que escribo a pelo en el editor. Para aplicar lo que me comentas tendría que hacerme una función que me buscase todos los caracteres especiales en el string y los reemplazace por su correspondiente código.
¿Es ésa la única solución que me queda?
Me imagino que habrá mucha gente al que le ha pasado lo mismo. Por ejemplo si tienes que visualizar un campo de la base de datos de tipo texto, ¿qué se hace? ¿buscar los caracteres especiales y los reemplazas?