Tach!
Interessant wäre eine Funktion die "Unsichtbare oder nicht unterscheidbare Zeichen" automatisch in entities konvertiert - hier hier ggf. schon mal jemand eine entsprechende Liste erstellt die man verwenden darf?
Wann hat man solche Zeichen - außer - schon mal im Quelltext stehen? Was nicht händisch bearbeitet wird, also nur von der Datenquelle zum Ziel durchgereicht wird, braucht eine solche Umwandlung nicht. Für den Fall des Debuggings kann man urlencode() missbrauchen. Aber um den ersten Teil zu beantworten: strtr() (in der zweiten Variante) muss nur mit einer entsprechenden Tabelle (sprich: Array) gefüttert werden.
dedlfix.