Seite 1 von 2

Umlaute verschwinden

Verfasst: Di 30.Okt, 2007 09:22
von Holger
Wie in ein paar Beiträgen bereits erwähnt sind wir auf einen Root-Server umgezogen.
Nun werden die TPL- und LANG-Dateien falsch ausgelesen, d.h. sie liegen wahrscheinlich im falschen Format auf dem Server.

Was kann ich dagegen tun, ausser alle Dateien neu abspeichern oder alle Umlaute in HTML-Tags umwandeln?

Gruss
H

Verfasst: Di 30.Okt, 2007 11:22
von oxpus
Welches Format hast Du auf der Seite eingestellt?
ISO oder UTF?

Verfasst: Di 30.Okt, 2007 11:30
von Holger
Wo sehe ich das? Meinst Du servermässig?
Die Dateien haben ANSI, wenn ich sie als UTF-8 abspeichere, funktioniert alles.

Verfasst: Di 30.Okt, 2007 12:54
von oxpus
Nein, ich meine die Codierung in der Webseite.

Verfasst: Di 30.Okt, 2007 13:00
von Holger
overall_header.tpl:

Code: Alles auswählen

<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
-> lang_main.php:

Code: Alles auswählen

$lang['ENCODING'] = 'iso-8859-1';

Verfasst: Di 30.Okt, 2007 13:31
von oxpus
Hm, wenn UTF-8 funktioniert, dann stelle doch mal um. Also anstelle 'iso-8859-1' eben 'utf-8'...

Verfasst: Di 30.Okt, 2007 13:33
von Holger
Oki!
Kann man das nicht am Server ändern?

Verfasst: Di 30.Okt, 2007 13:40
von oxpus
Würde ich zunächst lassen.

Verfasst: Di 30.Okt, 2007 13:42
von Holger
Hm, ich bekomme es aber nicht hin mit den Mail-Templates.
Habe den Zeichensatz auch schon af utf-8 in der entsprechenden tpl-Datei geändert.

Verfasst: Di 30.Okt, 2007 13:59
von oxpus
Email-Codierung ist auch was feines :(
Die werden in der tpl-Datei selber oder in der emailer.php, bzw. smtp.php codiert.
Dort musst Du den Zeichensatz auch ändern...

Verfasst: Di 30.Okt, 2007 14:02
von Holger
Na, dann werde ich mal suchen!

Ich habe in der emailer.php nichts iso-mässioges gefunden, aber dies:

Code: Alles auswählen

$this->msg = '--' . $mime_boundary . "\nContent-Type: text/plain;\n\tcharset=\"" . $lang['ENCODING'] . "\"\n\n" . $this->msg;
und

Code: Alles auswählen

			$this->encoding = (trim($match[2]) != '') ? trim($match[2]) : trim($lang['ENCODING']);
Der zieht sich das Ganze also aus der lang_main ...

Verfasst: Di 30.Okt, 2007 14:08
von oxpus
Stimmt. Dann würde das auch nach UTF-8 codiert.
Sofern liegt es dann am Email-Client, ob er UTF-8 erkennt und unterstützt.
Poste doch mal den Email-Header einer "defekten" Email.

Verfasst: Di 30.Okt, 2007 14:44
von Holger
Return-path: <webbmaster@maskinisten.net>
Delivery-date: Tue, 30 Oct 2007 13:57:45 +0100
Received: from mi007.mc1.hosteurope.de ([80.237.138.248])
by argon.webpack.hosteurope.de running ExIM using esmtp
id 1ImqfB-0006AJ-TP; Tue, 30 Oct 2007 13:57:45 +0100
Received: from mx-e.b-one.net ([195.47.247.246])
by mx0.webpack.hosteurope.de (mi007.mc1.hosteurope.de) using esmtp
id 1Imqf9-0001bd-5g
for info@gremminger.de; Tue, 30 Oct 2007 13:57:45 +0100
X-Greylist: domain auto-whitelisted by SQLgrey-1.7.4
Received: from india322.server4you.de (static-ip-85-25-150-166.inaddr.intergenia.de [85.25.150.166])
by mx-e.b-one.net (Postfix) with ESMTP id 2A366C0C863
for <info@gremminger.se>; Tue, 30 Oct 2007 13:57:42 +0100 (CET)
Received: (qmail 31584 invoked by uid 33); 30 Oct 2007 13:57:46 +0100
To: info@gremminger.se
Subject: Du har fått ett Personligt Meddelande
Reply-to: webbmaster@maskinisten.net
From: webbmaster@maskinisten.net
Message-ID: <1d8d1c9c5afb156a03d44ee5e8db3a20@www.maskinisten.net>
MIME-Version: 1.0
Content-type: text/plain; charset=utf-8
Date: Tue, 30 Oct 2007 13:57:46 +0100
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: PHP
X-MimeOLE: Produced By phpBB2
X-Amavis-Alert: BAD HEADER Non-encoded 8-bit data (char C3 hex) in message header 'Subject'
Subject: Du har f\303\245tt ett Personl... ^
Content-Transfer-Encoding: quoted-printable
X-HE-Virus-Scanned: yes
X-HE-Spam-Level: +
X-HE-Spam-Score: 1.0
X-HE-Spam-Report: Content analysis details: (1.0 points)
pts rule name description
---- ---------------------- --------------------------------------------------
1.5 SUBJ_ILLEGAL_CHARS Subject: has too many raw illegal characters
-1.0 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low
trust
[195.47.247.246 listed in list.dnswl.org]
0.5 SUBJECT_NEEDS_ENCODING SUBJECT_NEEDS_ENCODING
Envelope-to: info@gremminger.de
Intressant, da steht ja einiges zur Encloding drinne!

Verfasst: Di 30.Okt, 2007 14:53
von oxpus
X-Amavis-Alert: BAD HEADER Non-encoded 8-bit data (char C3 hex) in message header 'Subject'
Subject: Du har f\303\245tt ett Personl... ^
Oha, das schaut nicht gut aus.
Du schreibst in welcher Sprache? Schwedisch?
Dann wäre 'ISO646-SE' besser.
Hier eine Liste der Charaktersets, die definiert wurden: http://www.iana.org/assignments/character-sets

Verfasst: Di 30.Okt, 2007 14:56
von Holger
Naja, ich würde halt ungerne eine spezielle Charset festlegen, da im Forum in allen Skan-Sprachen geschrieben wird.
Aber ich teste mal den Du vorgeschlagen hast.

Verfasst: Di 30.Okt, 2007 15:04
von Holger
Ne, hat leider nichts gebracht!

Es ist aber nur das Subject, das betroffen ist. Die Mail an sich ist ok!

Verfasst: Di 30.Okt, 2007 16:38
von oxpus
Hm, sind denn dort sooooo wilde Zeichen drinnen?
Nun, der Betreff ist immer etwas heikel, da die Email-Programme (Server und Clients) darauf hin ja arbeiten und auch im Header das Subject als Schlüssel verwendet wird.
Vielleicht wäre es besser, zumindest den Subject zu codieren, also mit HTML-Sondertags, damit das besser gefunden/umgesetzt werden kann...

Dazu müsste man in der emailer.php vielleicht das hier machen:

Code: Alles auswählen

$this->subject = trim(preg_replace('#[\n\r]+#s', '', $subject));
durch

Code: Alles auswählen

$this->subject = htmlspecialchars(trim(preg_replace('#[\n\r]+#s', '', $subject)));
ersetzen...

Verfasst: Di 30.Okt, 2007 18:58
von Holger
Wird getestet!

Verfasst: Mi 31.Okt, 2007 14:40
von Holger
Leider hat es nicht den gewünschten Effekt gehabt.
Die Subjects kommen immernoch zerstört an.
Die Mailtexte sind mit utf-8 in der TPL-Datei jetzt ok.

Verfasst: Mi 31.Okt, 2007 14:43
von oxpus
Okay, forschen wir weiter...

meldet sich wieder -->

Verfasst: Mi 31.Okt, 2007 14:48
von Holger
So sieht es aus, nur zur Info:

Verfasst: Mi 31.Okt, 2007 17:25
von oxpus
Vielleicht klappt es so:

Code: Alles auswählen

$this->subject = htmlentities(trim(preg_replace('#[\n\r]+#s', '', $subject)), ENT_QUOTES,'ISO-8859-15');

Verfasst: Mi 31.Okt, 2007 18:54
von Holger
Wird getestet!

Verfasst: Do 01.Nov, 2007 09:43
von Holger
Nein, hilft leider nicht :(

Verfasst: Do 01.Nov, 2007 09:50
von oxpus
Sind das Umlaute die äöü oder andere skandinavische Sonderzeichen?