Tach!
htmlspecialchars verändert den Inhalt!
Escaping ist dafür da, den Inhalt so rüberzubringen, wie er ist, wenn er vorübergehend in einem anderen Kontext eingebettet werden soll. Wenn er am Ziel ein anderer als am Start der Reise ist, dann war nur die Wahl des Escapings nicht passend zum Kontext, aber nicht die Tastsache, dass der Inhalt verändert wurde. Der Inhalt wird sowieso auf seiner Reise durch die Schichten der Anwendung und dem Übertragungsmedium mehrfach verändert und wiederhergestellt.
dedlfix.