Ahh ja. Der Text wird vom DBMS codiert, weil er nicht dem Charset des DBMS entspricht. Bei der Ausgabe wird der bereits codierte Text erneut codiert (maskiert).
Ja, genau.
Aus dem Wort dzień wird dann in der DB und bei der Ausgabe dzień
Ohne htmlspecialchars wäre die Ausgabe wieder korrekt.
Gruß,
Onkel Schnitzel