Und zwar werden einige Zeichen (die so glaube ich nicht im deutschen ISO Standart liegen oder wie das auch immer heißen mag)
ISO-8859-1 (Westeuropäisch) oder ISO-8859-15 (Westeuropäisch mit Eurozeichen) heißen die Dinger.
komisch abgespeichert in dieser Form "ę" beispielweise für dieses "ę" mit nem "kringel" unten dran (kein Plan wie das heißt).
Die 281 ist die Nummer des Zeichens in der Unicode-Tabelle. Die ISO-8859-Tabellen können nur 256 Zeichen aufnehmen (8 Bit), was, wie Du jetzt bemerkst, zu Problemen führt, wenn verschiedene Sonderzeichen benutzt werden.
Unicode löst das Problem mit einer 32-bittigen Tabelle.
Das ę dürfte auch nicht von MySQL verbrochen worden sein, sondern von einem Webbrowser beim Absenden des Formulars. Du kannst HTML-Formularen mit dem Attribut accept-charset sagen, welchen Zeichensatz sie verwenden dürfen. In diesem Forum wird das so gemacht.
Beim Aufruf wandelt mir das Script jedoch dies auch nicht mehr in das entsprechende "ę" um sondern schreibt mir halt den Namen mit diesen "ę" aus was dann beispielsweise so aussieht:
Wenn es nur um die HTML-Ausgabe geht: Sorge dafür, dass die jeweilige Seite die genutzte Zeichentabelle ausspuckt (etwa mit 'header("Content-Type: text/html; charset=iso-8859-1");' ) und gib die Daten direkt aus, ohne Verwendung von htmlentities(). Sofern der Browser Unicode kann, wird er aus dem ę im HTML-Quelltext wieder ę machen, so wie er aus ü ein ü machen würde.
Probiere unbedingt, ob es mit dem Eurozeichen klappt! Andernfalls ändere die Zeichensatzangabe, zum Beispiel auf iso-8859-15 oder windows-1252.
Wenn es darum geht, die Daten auch in MySQL zu korrigieren: Du wirst Dich wohl oder übel mit utf-8 beschäftigen müssen, einer Kodierung, mit der 32-bittige Unicode-Werte unfallfrei in herkömmliche 8-Bit-Blöcke umgesetzt werden. Es ist nicht allzu schwer, der Algorithmus ist unter http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 erklärt. Suche im jeweiligen Datensatz a) nach Bytes, die größer 127 sind und b) nach Zeichenketten in der Form &nnn;. Bei a) nimmst Du den Bytewert, bei b) die ausgeschrieben Zahl nnn, kodierst dies entsprechend utf-8 und speicherst das Ergebnis im Datensatz.