Hallo,
ist deine Datenbank auf utf-8 eingestellt?
Hallo zusammen,
vielleicht kennt ja jemand eine Lösung für das Problem - scheint auch ein alter Schuh zu sein und keiner hats bisher angefasst:
Ich habe eine Seite, die in polnisches Kontaktformular hat. Das klappt alles soweit. Wird jedoch eine Mail versendet, werden sätmlich Sonderzeichen/Umlaute aus dem Template falsch in der Mail dargestellt. Die übermittelten Formularwerte stimmen merkwürdigerweise.
Ergo tippe ich auch ein Problem beim Einbinden/Decodieren des Templates im TMail-Plugin. Die Language-Datei (XML) und Template (HTML) sind beide auf UTF-8 gestellt. Auch auf der Webseite (UTF-8 kodiert) selbst werden schon die Umlaute/Sonderzeischen des Template falsch dargestellt - die Begriffe aus der XML wiederum stimmen. Hier lässt sich also ebenfalls vermuten, dass lediglich das Einlesen des Templates irgendwie fest auf ISO eingestellt ist.
Weiß jemand, wie sich das fix beheben lässt?
Grüße und Danke
Soundbear
Microsoft bug Report:
It isn't a bug it's a feature...
Hallo,
ist deine Datenbank auf utf-8 eingestellt?
Ja, es klappt ja alles prima - selbst die chinesische Version.
Was falsch dargestellt wird, sind die Zeichen aus der Template-Datei, die also das Layout des Formulars bestimmt und wo auch der Text für die Mail drin steht. Irgendwas muss da beim Einlesen bei der Kodierung falsch laufen.
Microsoft bug Report:
It isn't a bug it's a feature...
So, wie es ausschaut ist genau diese Funktion in der Datei class.tx_pilmailform_pi1.php daran Schuld:
Standardmäßig ist hier das return false aktiviert und damit übergeht das Plugin die UTF-8-Decodierung des Templates beim Einlesen. Habe das mal wie oben aktiviert und siehe da - nun stimmen die Umlaute in der Mail und auch auf der Seite.PHP-Code:function is_utf8($str) {
return (preg_match('/^([\x00-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xec][\x80-\xbf]{2}|\xed[\x80-\x9f][\x80-\xbf]|[\xee-\xef][\x80-\xbf]{2}|f0[\x90-\xbf][\x80-\xbf]{2}|[\xf1-\xf3][\x80-\xbf]{3}|\xf4[\x80-\x8f][\x80-\xbf]{2})*$/', $str) === 1);
//return false;
}
Microsoft bug Report:
It isn't a bug it's a feature...
Schön das es nun funktioniert.
Mich wundert nur, dass diese Funktion von Haus aus "false" ausgibt und damit eine korrekte Darstellung eines UTF-8-Templates verhindert. Habe viele Beiträge im Netz gefunden, die genau über dieses Problem stolpern. Falls die Erkennungsroutine nicht eindeutig funktioniert und deswegen auskommentiert wurde, wäre doch in den Jahren genügend Zeit gewesen das eingäng zu testen und zu korrigieren. Verstehe wer möchte ...![]()
Microsoft bug Report:
It isn't a bug it's a feature...
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)