si estás guardando en mysql lo que tienes que hacer cuando guardes es:
  Código PHP:
    mysql_real_scape_string($texto_a_guardar); 
    
  y lo muestras con 
 Código PHP:
    html_entity_decode($texto_de salida); 
    
  si no te funciona nade de eso puedes poner esto:  
 Código PHP:
    header('Content-Type: text/html; charset=UTF-8'); 
    
  o sino indagando en la red hace poco encontré esta función que te transforma un texto a sus caracteres html:  
 Código PHP:
    function texto_html($str){
   if (!isset($_SESSION["carateres_latinos"])){
      $todas = get_html_translation_table(HTML_ENTITIES, ENT_NOQUOTES);
      $etiquetas = get_html_translation_table(HTML_SPECIALCHARS, ENT_NOQUOTES);
      $_SESSION["carateres_latinos"] = array_diff($todas, $etiquetas);
   }
$str = strtr($str, $GLOBALS["carateres_latinos"]);
return $str; 
    
  por si acaso te dejo tb la lista de caracteres html más usados 
ñ = ñ
á = á
é=é
í=í
ó=ó
ú=ú 
Y si las quieres en mayúsculas sólo pon la primera letra luego de & en mayúscula y listo 
Espero que sea de tú ayuda!