in einer Datei (Datenbank-Backup von einem fremden Computer) sind die Umlaute nicht korrekt. Gibt es eine elegante Art das auf meinem Computer zu korrigieren? Was ist eigentlich die Ursache, denn der ASCII-Code stimmt lt. ord(), char() doch?
Der ASCII-Code kann nicht stimmen, denn in der ASCII-Tabelle sind überhaup keine Umlaute drin (vgl. SelfHTML, http://selfhtml.teamone.de/inter/zeichensaetze.htm#iso8859). Was Du da vor Dir hast, ist wahrscheinlich etwas in der Richung iso-8859-1 oder windows-1252, möglicherweise auch iso-8859-15. Diese Tabellen überschneiden sich in weiten Bereichen und erweitern allesamt die ASCII-Tabelle um die Positionen 128 bis 255.
Finde heraus, in welchem Zeichensatz die Datenbank gespeichert hat und in welchem Zeichensatz Deine Anwendung die Daten erwartet. Anschließend konvertiere mittels iconv (http://www.php.net/manual/de/ref.iconv.php).
Falls Du HTML ausgeben möchtest, benutze auf jeden Fall htmlentities() (http://www.php.net/manual/de/function.htmlentities.php). Seit PHP 4.1.0 akzeptiert diese Funktion auch die Angabe des Quellzeichensatzes.