htmlspecialchars() convierte carácteres que se usan para trabajar con HTML (<, >, ", ' y &), htmlentities() traduce todos aquellos que tengan un equivalente a HTML
además de los mencionados antes (vocales acentuadas por ejemplo...).
Usa htmlentities().