Umlaute im html-Formular ändern
abc567
- html
Hi, ich kann bei meinem Webserver lediglich Standard CGI´s verwenden. Eines ist für Kontaktformulare. Jetzt habe ich aber das Problem, dass das CGI die Umlaute nicht ändert, sodass in der Mail dann komische Zeichen anstatt eines Ä etc. auftauchen. Nun also meine Frage: Kann ich das irgentwie beheben? Z.B. den Text bereits in der Html umformen? Danke schonmal
Tach!
Jetzt habe ich aber das Problem, dass das CGI die Umlaute nicht ändert, sodass in der Mail dann komische Zeichen anstatt eines Ä etc. auftauchen. Kann ich das irgentwie beheben? Z.B. den Text bereits in der Html umformen?
Ein Browser verwendet in der Regel zum Absenden eines Formulars die Zeichenkodierung, der Seite, in der das Formuar eingebettet ist. Probier ISO-8859-1 und UTF-8 als Angabe, und natürlich musst du dann die Seite in der angegebenen Kodierung speichern.
dedlfix.
Jetzt habe ich aber das Problem, dass das CGI die Umlaute nicht ändert, sodass in der Mail dann komische Zeichen anstatt eines Ä etc. auftauchen.
Das Skript ignoriert offenbar die Zeichenkodierung der gesendeten Daten. Der Beschreibung nach bekommt das Skript die Daten utf-8-kodiert und versendet sie als iso-8859-Abkömmling; Umlaute benötigen bei utf-8 zwei Bytes – erzählt dein Skript, die Mail wäre iso-8859-kodiert, zeigt das E-Mail-Programm die entsprechenden Schriftzeichen für diese zwei Bytes an.
Erweitere das betreffende <form>-Element um ein accept-charset-Attribut, um die von den Browsern verwendete Kodierung einzugrenzen, in etwa so:
<form method="post" action="beispielurl" accept-charset="windows-1252">
(windows-1252 ist ein Abkömmling von iso-8859-1 und, Windows-entsprechend, weit verbreitet, mithin ein ziemlich sicherer Weg, um alten Kram ohne große Änderungen am Laufen zu halten.)
Du solltest jedoch unbedingt auch im CGI-Skript schauen, welche Kodierung es für die Mails verwendet. Steht dort etwas anderes als windows-1252, benutze diesen Wert für accept-charset. Steht dort nichts, belasse es bei der Änderung des <form>-Elements.
Hast du darüber hinaus die Möglichkeit, das CGI-Skript zu ändern, versuche stattdessen probehalber utf-8 als Kodierung im Formular und im Skript. Bist du dir über die Folgen nicht sicher, macht das Skript zum Beispiel noch anderes als nur eine Mail zu versenden, belasse es bei der <form>-Änderung mit windows-1252.