Umlaute als Fragezeichen

  • Sämtliche Umlaute kommen in den Emails aus meinem Formular als Fragezeichen an!
    Nach langer Suche bei Google und in verschiedenen Foren bin ich zum Ergebniss gekommen, daß es an der Kodierung liegen muss / soll.

    Momentan ist diese auf charset=utf-8 eingestellt.
    Laut Google und anderen Foren, muss man die Datenbank ebenfalls komplett auf diese Kodierung umstellen. Dies habe ich getan...hat aber nichts genützt [Blockierte Grafik: http://www.html.de/images/smilies/icon_sad.gif]

    Wenn ich mir jetzt mal in Firefox die Seiteninformationen anschaue,
    sehe ich dort:

    Kodierung: utf-8
    Content-Type text/html; charset=utf-8
    Folgendes steht in meiner Datenbank:
    Zeichensatz / Kollation der MySQL-Verbindung: utf8 unicode ci

    Verstehe also nicht, warum das nicht funktioniert :(


    Zum besseren Verständnis nochmal die entscheidenen Schnipsel aus meiner Kontakt.php

    Wer kann mir helfen? Bitte nicht all zu Fachchinesisch....bin kein Profi ;)


    PS: Mein Provider hat mir auf die Frage, ob es an der Datenbank liegt folgene Gegenfrage gestellt:

    Zitat

    Welches text-encoding setzen Sie in den Mail-Headern? Nutzen Sie hier 8bit.

    Bevor ich da antworte, will ich hier kurz fragen, was er meint?
    Mail-Header?-->Hab doch nur die eine php.Datei...verstehe ich nicht.
    8bit?..keine Ahnung^^.....hab ich das? Was ist das?

    Da ich bisher in keinem anderem Forum zu einem Ergebnis gekommen bin, hoffe ich hier auf Hilfe.....so pleeaase ;)

  • Du musst die Mail ebenfalls mit der Kodierung utf-8 verschicken.
    Einfacher geht das mit dem PHPMailer
    Dort dann einfach diese Zeile ergänzen:

    PHP
    $mail = new PHPMailer();
    $mail->charSet = "utf-8";

    Prinzipiell solltest du diese Klasse zum Versenden von Mails per php verwenden!

    Grüße,
    jojo


  • Danke für die schnelle Antwort!

    Gibt es das auch in Deutsch?
    Nicht, weil ich kein Englisch kann....aber wenn man mit Materie arbeitet, die man noch nicht perfekt beherrscht, dann macht es das leider nicht einfacher.
    Aber ich schaue mir das auf jeden Fall heute noch an!

    Gibt es denn für mein bestehendes Formular keine Hoffung mehr?
    Daß ich z.B sowas wie das von dir erwähnte

    PHP
    $mail->charSet = "utf-8";

    in meinen php-Teil einfüge und gut ist? *gg....wäre zumindest das Optimalste für mich ;)

  • Habe ich mir angeschaut...und finde dort:

    PHP
    $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    Ich denke darin sollte die Lösung liegen, richtig?
    Wobei hier utf-8 angegeben werden muss.....richtig?

    Wenn das richtig ist, wo muss das in mein Formular rein?
    Ich hab ein wenig probiert, ging aber nicht.....ach verdammt :(
    Ist denn UTF-8 überhaupt richtig - notwendig?

  • Für dich sollte das so aussehen:

    PHP
    $header  = 'MIME-Version: 1.0' . "\r\n";
    $header .= 'Content-type: text/plain; charset=utf-8' . "\r\n";
    $header .= 'From: '.$strFrom . "\r\n";
    mail($strEmpfaenger, $strSubject, $strMailtext, $header) 
      or die("Die Mail konnte nicht versendet werden."); 
    header("Location: Kontaktdanke.html"); 
    exit;

    Wobei ich dabei bleibe, dass du dich lieber mal 1 Stunde mit dem PHPMailer beschäftigst. Der nimmt dir nicht nur die blöde Arbeit mit den headern ab, spätestens wenn du mit Anhängen arbeitest, machst du dir das Leben extremst leichter ;)


  • Werde ich auf jeden Fall heute noch mit anfangen...da hast du recht!
    Nur momentan muss ich erstmal schnell dieses Formular hinbekommen.

    Es sieht nun wie folgt aus:



    Aber glaubst du,das funktioniert?
    Was soll denn das :(

    Ich werd nochmal ein wenig experimentieren....aber fällt dir was schlaues ein? Danke auf jeden Fall für deine Hilfe!!! :danke2:

  • Eine Mail muss mit bestimmten Headern definiert werden. Einfach, damit das ausgebende Programm weiss, mit was es da zu tun hat. Unter anderem betrifft das den Zeichensatz.
    Afraels Link sollte das ausführlich genug erklären. ;)

    Versuchs doch einfach mal und sag, was geschieht :)


  • Meiner Meinung nach habe ich genau das getan :smilie085:
    Oder nicht?

    Ich habe den entsprechenden Header mit dem Content-type eingefügt - genau so wie es du mir beschrieben hast.
    Die anderen übrigen Header aus Afraels Link wie z.B

    PHP
    $header .= 'To: Simone <simone@example.com>, Andreas <andreas@example.com>' . "\r\n";
    $header .= 'Cc: geburtstagsarchiv@example.com' . "\r\n";
    $header .= 'Bcc: geburtstagscheck@example.com' . "\r\n";

    sollten hier meiner Meinung nach keinen Einfluss darauf haben oder gar überflüssig sein oder? Zumindest macht es keinen Unterschied bei mir^^
    Dann habe ich da noch gefunden:

    PHP
    $subject = mb_encode_mimeheader('ääööö test test öäöäöä','UTF-8');

    Hätte ja sein können, daß es hilft...leider auch nicht :(


    *verzweifel :smilie201:


    Könnte das Problem ganz woanders liegen?
    Mir wurde unter anderem gesagt:

    Zitat

    Beim mail() Befehl sind die Headerzeilen selbst zu setzen.

    Den Befehl habe ich damit doch gesetzt und per mail() Befehl geht das ganze doch auch raus ja?

    Dann noch was.....bei Dreamwaver gibt es noch die Möglichkeit, innerhalb des Formulares den Kod.-Typ anzugeben.
    Das habe ich getan....
    Nun sieht der Formularbereich wie folgt aus:


    Teilweise Problemlösung

    Ich habe das Problem nun zum Teil gelöst, indem ein weiterer Header hinzugefügt wurde!;

    PHP
    $header .= "Content-Transfer-Encoding: 8bit"

    Nun erscheint der Inhalt der Email korrekt!!
    Soweit sehr gut - allerdings erscheint in der Betreffzeile und der Absenderzeile im Emailprogramm noch Fragezeichen, wenn ein Umlaut eingegeben wurde.

    Ich muss doch sicher irgendwo jetzt diese 8bit Sache ebenfalls einfügen, damit auch dort die Umlaute korrekt angezeigt werden, oder?
    Kann da jemand was schlaues zu sagen?

    4 Mal editiert, zuletzt von vivistar (24. Juni 2009 um 13:55)

  • Weiß keiner mehr was darauf?

    Und nochwas.....
    Seitdem dort:

    PHP
    $header .= "Content-Transfer-Encoding: 8bit"

    eingefügt ist, funktioniert es soweit, bekomme aber ca 30 Minuten nach der eigentlichen Email
    eine 2te Email, die wie folgt aussieht:
    ----------------------------------

    Content-type: text/plain; charset=utf-8

    From: homer0177@gmx.net[/email]

    Content-Transfer-Encoding: 8bit
    Message-Id: <20090625101745.96A5577E54@loki.ffm.hosting-agency.net>
    Date: Thu, 25 Jun 2009 12:17:45 +0200 (CEST)

    Name: ööüüö
    Vorname: Name

    Telefon: 0505050
    Email: homer0177@gmx.net[/email]
    Betreff: Beitrag
    Meine Nachricht: üööää


    Warum das denn nun schon wieder?

    PS: Doppelpst bewusst gemacht, da sonst keiner antwortet :(