Seite 1 von 2

Codierungsprobleme mit den Umlauten im Kontaktformular

Verfasst: 11.02.2010, 21:20
von Pfauli
Hallo Zusammen

Ich habe mich im Internet umgesehen und danach gesucht, aber nicht genau das gefunden, was mein Problem darstellt. Die meisten Seiten behandeln php-Probleme, oder aber den Fehler Charset falsch. Und zwar werden Umlaute und Sonderzeichen bei Erhalt einer Mail über das Kontaktformular falsch dargestellt:

"Guten Abend Herr Münzer"
[...]
"Mit freundlichen Grüßen"

Die Webseite mit dem Kontaktformular hat folgende Meta Angabe:

Code: Alles auswählen

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Diese müsste doch hierfür greifen, oder?

Mein Formular ist durch folgende Befehle weiterhin definiert:

Code: Alles auswählen

<form action="/system-cgi/formmail.pl" method="POST">
							<input type=hidden name="recipient" value="ab@xyz.de">
							<input type=hidden name="redirect" value="http&#58;//www.xyz.htm">
							<input type="hidden" name="subject" value="Kontaktanfrage">
							<input type="hidden" name="required" value="name,email,subject">
							<input type=hidden name="missing_fields_redirect" value="http&#58;//www.xyz-fehler.htm">
							<input type=hidden name="env_report" value="REMOTE_HOST, HTTP_USER_AGENT,REMOTE_ADDR">
							<input type=hidden name="print_config" value="email,subject">
Mir fehlt das Wissen, worin der Fehler besteht.
Was mache ich falsch? Fehlt etwas? Kann mir jemand helfen?

Viele Grüße
Sören

Verfasst:
von

Verfasst: 11.02.2010, 21:46
von jackwiesel

Verfasst: 11.02.2010, 22:18
von Pfauli
Hallo Jackwiesel

Vielen Dank für den hinweisenden Link.
Mein Webpacket ist nicht PHP-fähig.

Habe ich jetzt ein Problem?

Verfasst:
von

Verfasst: 11.02.2010, 22:23
von jackwiesel
Jepp... WER generiert denn dann Dein Kontaktformular, der Zauberer von Ozz...??? :o

Verfasst: 11.02.2010, 22:38
von Pfauli
Hm ...

Ich habe mich einfach an dem vorgefertigten Script des Providers rangemacht, bei dem ich dem ich Url inkl. Webspace gemietet habe.

Mal schauen, ob ich etwas übersehen habe.
:oops:

Verfasst: 12.02.2010, 10:12
von Pfauli
jackwiesel hat geschrieben:Jepp... WER generiert denn dann Dein Kontaktformular, der Zauberer von Ozz...??? :o
Zitat vom Support hat geschrieben:
Wir haben Ihr Anliegen überprüft und empfehlen Ihnen, in Ihrem Browser
die Zeichensatzoptionen ebenfalls zu überprüfen. Da Sie UTF-8 in Ihrem
Kontaktformular definiert haben, jedoch Ihre Besucher vermutlich den
Standard-Zeichensatz für Windows "ISO-8859-1" verwenden kann es hierbei
zu Problemen kommen. Wir empfehlen Ihnen testweise den Eintrag
"charset=utf-8" in "charset=iso-8859-1" abzuändern.

Bitte beachten Sie, dass unser Kontaktformular nicht auf PHP basiert und
auch nicht verändert werden kann, da Änderungen am Kontaktformular
serverweit gültig sind und dies zu Problemen bei anderen Kunden auf dem
Server führen könnte.
Wenn ich jetzt meiner Kontakt-Seite den "charset=iso-8859-1" zuweise, und jemand schreibt mir und hat "charset=utf-8", dann habe ich doch das gleiche Problem in Grün, oder nicht?

Oder bin ich auf dem flaschen Dampfer?
Sind denn die meisten Browser auf ISO eingestellt?
(Ich wusste gar nicht, dass das damit etwas zu tun hat und dachte immer die META Zuweisung meiner Page ist Feder führend...) :bad-words:

Verfasst: 12.02.2010, 11:18
von ishmael
Meine Empfehlung: wechsle den Hoster! Die müssen doch wissen, welche Zeichenkodierung deren Skript erfordert.

Im normalfall, (also wenn man auf das Skript zugriff hat) musst Du zwei Dinge beachten:
1) Der Zeichensatz des HTML-Formulars muss bekannt und an den Client mitgesendet werden (am besten via Content-type header). Im Regelfall kommen die Daten von dem Formular dann auch in dieser Zeichenkodierung bei dir an.

2) Der verwendete Zeichensatz muss in den E-Mailheader.

Wenn du das Skript nicht anpassen kannst, musst du deine HTML-Dateien an den Zeichensatz anpassen, mit denen dein Host sein Skript füttern will.

Siehe auch: https://blog.dnaber.de/2010/kontaktform ... chensalat/

Verfasst: 12.02.2010, 11:37
von Mork vom Ork
Pfauli hat geschrieben:
Zitat vom Support hat geschrieben:Wir haben Ihr Anliegen überprüft und empfehlen Ihnen, in Ihrem Browser die Zeichensatzoptionen ebenfalls zu überprüfen. Da Sie UTF-8 in Ihrem Kontaktformular definiert haben, jedoch Ihre Besucher vermutlich den Standard-Zeichensatz für Windows "ISO-8859-1" verwenden
Die haben offensichtlich keine Ahnung von dem, was sie schreiben.
Wenn ich jetzt meiner Kontakt-Seite den "charset=iso-8859-1" zuweise, und jemand schreibt mir und hat "charset=utf-8", dann habe ich doch das gleiche Problem in Grün, oder nicht?
Das wäre ein treffender Einwand gegen die Behauptung deines Hosters, wenn auch in der Praxis letztlich falsch. Tatsächlich ist es so, dass Browser sich automatisch auf die verwendete Kodierung einstellen - die Geschichte von den Browsern, die auf den angeblichen Windows-Standard-Zeichensatz iso-8859-1 (auch falsch, Windows verwendet windows-1252) festgelegt wären, ist hanebüchener Unsinn.
(Ich wusste gar nicht, dass das damit etwas zu tun hat und dachte immer die META-Zuweisung meiner Page ist Feder führend...) :bad-words:
Prinzipiell richtig, allerdings überschreibt die Angabe im HTTP-Protokoll das, was per <meta> als HTTP-Ersatz (daher <meta http-equiv=...) angegeben wird. Das solltest du bei einer Änderung beachten.

Das Problem dürfte bei dir schlichtweg sein, dass das Formular verarbeitende Skript die Daten mit der falschen Kodierungsangabe in der E-Mail sendet (auch da gibt es ein Content-Type mit charset-Attribut).

Da die ihr Skript nicht ändern wollen oder können: Schau in deinen Formular-E-Mails nach, welche Kodierung dort angegeben ist und verwende dieselbe Kodierung in deiner Formularseite.

Verfasst: 12.02.2010, 12:17
von Pfauli
Mal rein hypothetisch:

A)Meine Page ist auf das Charset Attribut: UTF-8 eingestellt
B)Die Mails des Kontaktfomulares werden aber mit dem Charset Attribut: ISO-8859-1 gesendet

____________________________

So, wie ihr mir mein Problem schildert, ist das Charset meiner Page nicht dominat, sondern das des Mail-Formulares. Ändere ich jetzt meine Page auf ISO, würde ich dann eine Dummheit begehen, weil das UTF-8 das eigentlich aktuell gängige Charset ist, oder hätte ich keine Auswirkungen? (Obgleich ... würde ich es nicht ändern, würdet ihr sicherlich zurecht sagen: "Dann lebe mit dem Buchstabensalat")

___________________________

Ein weiterer Gedanke: Ich erhalte meine Mails via Outlook. Liegt es vielleicht an meinem Outlook, was standartisiert auf ISO eingestellt ist?

___________________________

PS: So langsam leuchtet mir ein, warum viele Supportdienste nie die Zitate der Anfragenden User an die Antwortmails hängen :wink:

Warum hat uns Jacob Grimm das blos damals angetan... dabei hat sein Name nicht einmal einen einzigen Umlaut :bad-words:

Verfasst: 12.02.2010, 13:51
von ishmael
Das hat nichts mit Dominanz zu tun, sondern mit unterschiedlichen "Erwartungen".

Ich denke, dass das verarbeitende Skript deines Hosters davon ausgeht, die Daten lägen in ISO-8898-1 vor, das tun sie aber nicht, wenn dein HTML in UTF-8 kodiert ist.

Gibt es in Outlook die Möglichkeit den Quelltext der E-Mail anzeigen zu lassen? Such darin nach der Zeile

Code: Alles auswählen

Content-Type&#58; .../...; charset=XY
um erstmal sicher zu gehen, welche Kodierung das Skript nutzt.

Entweder du stellst deine ganze Seite dann nach dieser Kodierung um, oder du versuchst es mit dem Attribut 'accept-charset="XY"' für das Form-Element.
Hier bin ich mir allerdings nicht sicher, ob die Browser sich danach richten, wenn der in accept-charset angegebne Wert von dem im HTTP-header abweicht.

E-Mailprogramme richten sich in der Regel nach dem Zeichensatz, der im E-Mailheader angegeben ist. Wenn keiner mitgegeben verwenden sie den eingestellten Standardzeichensatz.

Verfasst: 12.02.2010, 16:52
von Pfauli
Ich habe einmal nachgesehen, und ihr habt wohl Recht.
Und zwar kann ich bei Outlook unter Aktionen ---> andere Aktionen ---> Codierung mir unendlich viele Codierung zur Ansicht wählen. Nun habe ich dort von Westeuropäisch (Windows) auf UTF-8 umgestellt (explizit für diese eine geöffnete Mail) und siehe da, Umlaute werden normal geschrieben.

Sicherlich nicht die saubere Lösung meines Problems, aber halbwegs vertretbar, denn kann ich Kunden antworten ohne einen Buchstabensalat zu haben. Fraglich bleibt für mich jedoch, mit welcher Codierung meine Mail dann wieder raus geht.

Anyway, das muss ich alleine ab hier heraus kriegen, denke ihr habt mir eine Menge weiter geholfen, wo und wie ich suchen muss.

Vielen Dank dafür!

Verfasst: 12.02.2010, 19:42
von Mork vom Ork
Pfauli hat geschrieben:Sicherlich nicht die saubere Lösung meines Problems, aber halbwegs vertretbar, denn kann ich Kunden antworten ohne einen Buchstabensalat zu haben. Fraglich bleibt für mich jedoch, mit welcher Codierung meine Mail dann wieder raus geht.
In der richtigen, darum brauchst du dir keine Gedanken machen. Sobald dein E-Mail-Programm die Texte richtig anzeigt, kann es sie auch sonst richtig weiterverarbeiten, einschließlich des Weitersendens.
Anyway, das muss ich alleine ab hier heraus kriegen, denke ihr habt mir eine Menge weiter geholfen, wo und wie ich suchen muss.
Da dein Outlook die Formular-Mail wohl als &#8222;Westeuropäisch (Windows)&#8220; identifiziert hat, füge dem <form>-Element erstmal das Attribut accept-charset="windows-1252,iso-8859-1" hinzu. Falls die meisten Anfragen dann korrekt bei dir aufschlagen, belasse es dabei &#8211; wie du noch vereinzelt auftretenden fehlerhaften Mails Outlook-seitig von Hand korrigieren kannst, hast du ja schon selbst rausgefunden.

Verfasst: 13.02.2010, 17:39
von Pfauli
Mork vom Ork hat geschrieben:accept-charset="windows-1252,iso-8859-1"
Ich baue gerade an meinen Seiten und werde das einmal einbauen.
Wäre ja echt klasse, wenn es funktioniert.

Hab vielen Dank!

Verfasst: 14.02.2010, 00:14
von mgutt
Pfauli hat geschrieben:Ich habe einmal nachgesehen, und ihr habt wohl Recht.
Und zwar kann ich bei Outlook unter Aktionen ---> andere Aktionen ---> Codierung mir unendlich viele Codierung zur Ansicht wählen. Nun habe ich dort von Westeuropäisch (Windows) auf UTF-8 umgestellt (explizit für diese eine geöffnete Mail) und siehe da, Umlaute werden normal geschrieben.
Die Autoerkennung von Outlook nimmt aber den Zeichensatz, der im Email-Header steht. Schau mal in den Header, wie bereits gesagt wurde. Und wenn da ISO steht, muss der Hoster sein Email-Script anpassen oder Du den Zeichensatz der Seite, wo Dein Kontaktformular steht.

Verfasst: 15.02.2010, 17:46
von Pfauli
Pfauli hat geschrieben:
Mork vom Ork hat geschrieben:accept-charset="windows-1252,iso-8859-1"
Ich baue gerade an meinen Seiten und werde das einmal einbauen.
Wäre ja echt klasse, wenn es funktioniert.

Hab vielen Dank!
Ich habe das jetzt einmal angewendet und auch getestet, leider erfolglos.
Mir scheint, es bleibt mir keine andere Wahl, entweder Buchstabensalat zu haben, oder aber die Webseite auf ISO umzustellen.

Es es okay, wenn man alle Webseite auf UTF-8 stehen hat, aber nur die Kontakt-Seite auf ISO? Mir ist bewusst, dass es keine "saubere" Lösung ist, aber im Grunde auch nicht schlimm,oder?

@mgutt

Der Hoster will und kann das Script nicht umändern, denn er selbst bedient sich nur einer Applikation, die er aus irgend einem englischen Partnerunternhemen bekommt. Das hatte ich schon erfragt und wurde abgewiesen. Ob es an Bequemlichkeit liegt, kann ich nur unterstellen ... :x