Tartone: ÖÜÄ Fehler bei Formular Versandt

Hallo,

ich verzweifel gerade ein wenig und zwar kriege ich beim Versenden eines Formulars die Umlaute ÖÄÜ immer Falsch angezeigt(ü etc).
Jetzt suche ich schon die ganze Zeit rum voran es liegen könnte und bin gerade Kurz vorm Durchdrehen warum das nicht geht, vorallem da es nur bei GMX und in Outlook so ist. Bei mir im Mail Programm wird es richtig dargestellt.

Das ganze besteht aus 2 Scripten 1x der Bewerbungsseite und 1x der php zum versenden.

Hier mal ein Beispiel zur Eingabe Bewerbungsseite:(ZUM EINTRAGEN)

			~~~php

<tr><td><font face="Helvetica, Geneva, Arial, SunSans-Regular, sans-serif">Strasse:</font></td>
<td><font face="Helvetica, Geneva, Arial, SunSans-Regular, sans-serif"><input name="Strasse" size="50" type="text"></font></td>

									<td align="center" colspan="2"><font face="Helvetica, Geneva, Arial, SunSans-Regular, sans-serif"><input name="Send" type="submit" value="Senden">    <input name="Reset" type="reset" value="Neu"></font></td>  
								]
  Hier einmal der Teil aus dem Versende Script:  
  
~~~php
<?  
 $dateienname=array();  
 foreach($datei_name as $himbeere)  
 {  
 array_push($dateienname,$himbeere);  
 }  
 $grenze="grenzlinie";  
 $name_des_bildes=$HTTP_POST_FILES['datei']['name'];  
  
 $headers ="MIME-Version: 1.0\r\n";  
 $headers.="From: $mailaddi\n";  
 $headers.="Content-Type: multipart/mixed;\n\tboundary=$grenze\n";  
 $botschaft="\n--$grenze\n";  
 $botschaft.="Content-transfer-encoding: 8bit\r\n";  
 $botschaft.="Content-type: text/plain; charset=UTF-8\n";  
 $botschaft.= "Anrede: $Anrede  
 Vorname: $Vorname  
 Nachname: $Nachname  
 Strasse: $Strasse  
 Plz/Ort: $PLZ  
 Mailadresse: $mailaddi  
 Weitere Informationen: $Info  
 \n";  
 $botschaft.="\n\n";  
 for ($i=0;$i<count($datei);$i++)  
 {  
 $botschaft.="\n--$grenze\n";  
 $botschaft.="Content-Type: application/octetstream;\n\tname=".$dateienname[$i]."\n";  
 $botschaft.="Content-Transfer-Encoding: base64\n";  
 $botschaft.="Content-Disposition: attachment;\n\tfilename=".$dateienname[$i]."\n\n";  
 print $datei[$i]."<br>";  
 $zeiger_auf_datei=fopen($datei[$i],"rb");  
 $inhalt_der_datei=fread($zeiger_auf_datei,filesize($datei[$i]));  
 fclose($zeiger_auf_datei);  
 $inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));  
 $botschaft.=$inhalt_der_datei;  
 $botschaft.="\n\n";  
 }  
 $botschaft.="--$grenze";  
 $bot.= "Text für bestätigungs Mail  
\n";  
 mail("anfrage@ivent4u.de","Bewerbung",$botschaft,$headers);  
  mail("$mailaddi","Bewerbung",$botschaft,$bot,$headers);  
 print "Vielen Dank für Dein Interesse die Bewerbung wurde versand";  
 ?> 
  1. Hoffe mir kann jemand einen Anhaltspunkt geben was ich falsch gemacht habe.
    Kann doch eigentlich nur was mit dem Content Typ zutun haben, oder bin ich da auf dem Kompletten Falschen weg?
    Bitte Bitte Hilfe!

  2. Hi,

    $botschaft.="Content-type: text/plain; charset=UTF-8\n";

    möglicherweise hilft accept-charset

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
  3. ich verzweifel gerade ein wenig und zwar kriege ich beim Versenden eines Formulars die Umlaute ÖÄÜ immer Falsch angezeigt(ü etc).

    Das sind in jedem Falle schon mal utf-8-Bytes, die nicht zu Umlauten dekodiert wurden. Da du der Mail aber eine funktionierende Content-Type-Zeile mitgibst, sieht es so aus, als wenn die Daten zweimal utf-8-kodiert worden wären.

    Andererseits: Wenn der Fehler wohl im GMX-Webmailer und bei Outlook auftritt, würde es mich nicht wundern, wenn die einfach nicht in der Lage wären, utf-8 zu dekodieren …
    Hast du dir schon mal mit einem Mail-Programm eine utf-8-kodierte Mail an GMX bzw. Outlook geschickt?

    $botschaft.="Content-type: text/plain; charset=UTF-8\n";
    $botschaft.= "Anrede: $Anrede
    Vorname: $Vorname
    Nachname: $Nachname
    Strasse: $Strasse
    Plz/Ort: $PLZ
    Mailadresse: $mailaddi
    Weitere Informationen: $Info

    Ich finde es etwas fragwürdig, dass du augenscheinlich ohne Prüfung, in welcher Kodierung die Daten vorliegen, einfach behauptest, das wäre utf-8. Wo kommt denn $Anrede & Co. her? Im Skript ist nirgends zu sehen, wo diese Variablen gefüllt werden (und du hast doch hoffentlich nicht register_globals eingeschaltet?).

    1. Also Kodierung ist utf8 Dokumententyp xhtml 1.0

      Es gibt 2 Dateien einmal zur eingabe der Daten und maili für das versenden und auswerten.

      Was meinst du mit wahrscheinlich 2 mal Kodiert???
      die kodierung steht einmal oben bei meta und dann unten im form mit
       $botschaft.="Content-type: text/html; charset=utf-8\n";

      1. Hallo,

        es muss nicht nur im Dokument von utf-8 die Rede sein, sondern die Datei selbst muss auch utf-8 Kodiert sein.

        ICh weiß ja nicht, wie du deine Dateien bearbeitest. Mit Notepad musst du z.B. auf Sepeichern unter. Da kannst du dann auchd ie Kodierung auf UTF-8 einstellen.

        Vielleicht hilft das ja.

        Gruß
        Alex