und der Wert der Variable test ist dann &AUML, obwohl ich vorher html_entity_decode verwende...warum?
Weil Entitäten mit einem Semikolon abgeschlossen werden _müssen_.
Hm, laut Userkommentar scheint die Funktion da keine Unterschiede zu machen. Der sichere Weg wäre m.E., einen locale-Wert zu setzen, der auch Umlaute ändert ('de-DE' oder ähnliches). Danach kann man dann die großen Umlaute durch ihre Entitäten ersetzen.
Siechfred