questa è una funzione che mi sono fatto io per la conversione dei testi in entità HTML.

Codice PHP:
function HTMLconvert($text)
  {
  
$finded   =array();
  
$filtered =array();
  
$pattern="/(<\/?\w+\s*[^>]*\/?> )?([^<>]*)/mis";
  
preg_match_all($pattern$text$stringsPREG_SET_ORDER);

  foreach(
$strings as $arr)
    {
    if( !empty(
$arr[2]) ) $finded[]=$arr[2];
    }
  
  
$elements=array_unique($finded);

  foreach(
$elements as $el)
    {
    if (
substr($el,0,1) !='/' && !in_array("/$el",$elements)) 
      {
      
$filtered[]=$el;
      }
    }
  
  foreach(
$filtered as $s_key=>$s_val)
    {
    if(
mb_detect_encoding($s_val)=='UTF-8')
      {
$s_val=iconv('UTF-8'"ISO-8859-1//TRANSLIT",$s_val);}
    else       
      {
$s_val=iconv('ISO-8859-1'mb_detect_encoding($s_val)."//TRANSLIT",$s_val);}

    
$entities[$s_key]=htmlentities($s_val,ENT_QUOTES);
    }
  
  
$text=str_replace($filtered,$entities,$text);
  return (
$text);
  } 
per il momento ha sempre funzionato bene e l auso per gestire testi provenienti da un editor fck

vedi se ti può essere di aiuto...