io farei un streplace per ogni carattere
str_replace("à","&agrave", $stringa);
pe quanto concerne i tag potresti provare a schivarteli con qualche espressione regolare in quanto i tag html sono sempre nella forma <....>