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?
Wenn man die Daten über einen Editor eingibt - TinyMCE hat z.B. eine möglichkeit, bestimmte Zeichen bereits bei der Eingabe als entities auszugeben (http://www.tinymce.com/wiki.php/configuration:entities)
Meine Konfiguration sieht hierfür so aus "160,nbsp,38,amp,34,quot,60,lt,62,gt"
Wir haben hier aber oft den Fall, dass wir technische Datenblätter hinterlegen - da wäre es äußerst hilfreich, wenn z.B. Minus-Zeichen, Bindestriche, Multiplikationszeichen einfacher als solche erkennbar wären. Ein blick in den Quelltext reicht um zu sehen ob der Redakteur die Daten richtig eingegeben und nicht verstümmelt hat - ohne dafür erst lästig das Debugging zu aktivieren.
Aber um den ersten Teil zu beantworten: strtr() (in der zweiten Variante) muss nur mit einer entsprechenden Tabelle (sprich: Array) gefüttert werden.
Das wie ist mir klar, mit gings jetzt konkret um die Liste selbst :)