hi,
Zum Umwandeln der HTML-eigenen Zeichen gibt es htmlspecialchars.
Ich habe einfach nicht daran gedacht weil ich htmlentities() damals als ich das Script geschrieben habe brauchte...
htmlentities ist hier "gefährlich", weil PHP eigentlich noch kein UTF-8 "kann".
Es gibt zwar ein paar mbstring-Funktionen als (u.a.) UTF-8-tauglichen Ersatz für "normale" Stringfunktionen - aber die restlichen Stringfunktionen betrachten auch Zeichen, die in UTF-8 mit mehreren Bytes dargestellt werden, als eben so viele "mehrere" Zeichen.
Wenn jetzt ein ä in UTF-8 den beiden (hexadezimalen) Bytewerten E4 00 entspricht (als ASCII dargestellt ä) - dann nimmt sich htmlentities jedes von den beiden einzeln vor, und versucht es als HTML-Entity umzuschreiben - logisch, dass dabei Kappes rauskommt.
htmlspecialchars hat dieses Problem nicht - aber auch nur deshalb, weil es maximal die Zeichen <, >, " und ' bearbeitet - und die werden auch in UTF-8 alle mit nur einem Byte dargestellt.
gruß,
wahsaga
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }