Sch.... Umlaute!

heike_f

Grünschnabel
So - ich habe mir ewig viele Forumbeiträge zum Thema Umlaute und PHP durchgelesen, aber bei mir funktioniert das nicht! Ich bekomm gleich die Krise, muss das so schnells geht ändern, dem Kunden gefällt das nicht so :eek:///

So - hier mein "Problembericht":
Ich habe eine kontaktformular.config.php die vom kontaktformular.html Dokument angesprochen wird *lol* ja und dann hab ich noch einen error_footer.html und eine error_header.html die dann die Fehlermeldungen auslesen...

Ja - der Script funktioniert ja auch einwandfrei (pille palle ;o)) ABER wenn die E-Mail ankommt die vom Kontaktformular geschrieben wird, kommen alle ä, ü, ö und ß als À
ö, ÃŒ, Ã? an... Wo ist mein Fehler? Hier mal mein Script des PHP-Script welches ausgeführt wird... BIDDÖÖÖÖÖÖÖÖ hölfäääään ;o)

PS: Ja, und eigentlich sind alle Dateien auf utf-8

-------------------------------------------------------------------------------------------------------------------------------


<?php

/************************************************************************
* File: kontaktformular.config.php *
* Konfigurations-Datei fuer ein HTML-Formular *
* ===================================================================== *
* Beschreibung: *
* Diese Datei wird vom Mailer benoetigt und legt die Konfiguration *
* fuer ein bestimmtes Formular fest. Fuer jedes Formular kann eine *
* andere Konfigurations-Datei definiert werden. *
* *
* ===================================================================== *
************************************************************************/

// E-Mail
// ------

$mail_recipient_to = "hier email"; // erforderlich
// $mail_recipient_cc = "infocc@domain.com"; // optional
// $mail_recipient_bcc = "infobcc@domain.com"; // optional
$mail_sender = "Formmailer <info@domain.de>"; // optional
$mail_subject = "Ihr Kontakt zu uns"; // optional

// Dieser Text erscheint im E-Mail oberhalb des Formular-Inhalts - optional
$mail_header_text = "Guten Tag\n\nDas Online-Formular wurde ausgefuellt: \n\n";

// Dieser Text erscheint im E-Mail unterhalb des Formular-Inhalts - optional
$mail_footer_text = "Dieses E-Mail wurde von uns generiert.";

$mail_copy_to_visitor = true ; // false (keine Kopie) or true (Kopie senden)
$mail_visitor_details = false ; // false (keine Details) or true (Details einfuegen)

// Formular
// --------
$form_redirect_page = "sample_redirectpage.html"; // erforderlich

// Eingaben ueberpruefen
// Ein Fehler wird angezeigt, wenn...
$form_check_fields["Name"] = "CONTAINS_NUMBERS"; // ...das Feld leer ist oder Zahlen enthaelt
$form_check_fields["Vorname"] = "CONTAINS_NUMBERS"; // ...das Feld leer ist oder Zahlen enthaelt
// $form_check_fields["Strasse"] = "IS_EMPTY"; // ...das Feld leer ist
// $form_check_fields["PLZ"] = "CONTAINS_CHARACTERS"; // ...das Feld leer ist oder Buchstaben enthaelt
$form_check_fields["E-Mail"] = "INVALID_EMAIL"; // ...das Feld eine ungueltige E-Mail-Adresse enthaelt

// Fehlerseite
// -----------
$page_error_header = "form_error_header.html";
$page_error_footer = "form_error_footer.html";

?>
 
Schon mal darüber nachgedacht, das dein Auftraggeber sein eMailprogramm für das Lesen von eMails auf das richtige Format gestellt hat?

Wenn du utf8 sendest und er seine Zeichencodierung im eMailprogramm auf iso-8859.1 eingestellt hat, hilft dein Senden der richtigen Umlaute wenig ;) oder eben anderst rum. Wenn du iso-8859-1 sendest und er utf Einstellung hat, wird das mit dem Umlautthema und Sonderzeichen auch nichts.
 
hmmm... das mit dem mail dings scheint mir plausibel ;)
ganz schön blöd - aber dann hab ich jetzt wenigstens eine Erklärung
dafür.

Vielen Lieben Dank
ich hoff ich kann auch mal helfen :)
 
@Gumbo

Und wie bzw. wo baue ich dieses php-script ein? ich bin kein php-profi, bei mir ist nur "umbauen" angesagt ;)

wäre super wenn du mir hierbei helfen könntest - ganz toll sogar! dann wäre das mit den umlauten ja doch kein problem oder? also dann ist es egal wo bzw. was für einen dings-code ich im mail-programm eingestellt habe?

freu mich auf antwort!
grüße
heike
 
@ Gumbo,

was wäre wenn der Empfänger in seinem Mailprogramm als Zeichencode "windows-1252" eingestellt hätte?

Würden dann die Umlaute mit der genannten Funktion korrekt angezeigt?
 
Es ist vor allem wichtig, dem User Agent mitzuteilen, mit welcher Zeichenkodierung der Inhalt kodiert wurde (siehe „Content-Type“-Header-Feld). Ist keine angegeben, wird die Standardkodierung verwendet.
Dabei kommt es aber auch darauf an, mit welcher Kodierung die Datenquelle kodiert wurde. Dies kann einerseits eine Datenbank, eine beliebige Textdatei aber andererseits auch das PHP-Skript selbst sein.

Ich bin ganz auf UTF-8 umgestiegen, musste dafür aber auch meinen Editor wechseln. Unter Windows hat mir der Notepad2 recht gut gefallen, jetzt unter Mac OS arbeite ich mit TextMate. Bei beiden lässt sich beim Speichern oder auch während des Arbeitens die Zeichenkodierung einfach umstellen/wechseln.
 
Irgendwie hast du meine Frage jetzt nicht beantwortet oder ich finde die Antwort nicht. ;)

Interessant finde ich, wenn keine Codierung mitgesendet wird (geht auch nur dann, wenn kein spezieller html-Aufbau in der Mail vorhanden sein muss, und auch keine Anhänge), ist die Mail in jeglicher Einstellung zu lesen.

Dabei werden die Umlaute und Sonderzeichen für den Mailversand nicht in eine Zeichencode umgewandelt.
 
Die Zeichenkodierung einer E-Mail wird im „Content-Type“-Header-Feld beschrieben und nicht erst im Nachrichtenkörper selbt. Lass dir einfach mal den Quelltext der Nachricht anzeigen.
 
Zurück