probablemente
htmlspecialchars() labure un poquitin mas rapido pero de forma mas segura, no creo
htmlspecialchars() solamente intenta transformar las ' , ", <, > y & a su entidad correspondiente, a diferencia de
htmlentities() que buscara de transformar los anteriores mas todos los caracteres y simbolos que tengan representacion en entidades html, por ejemplo á, Â, €, ....
saludos