Die Joomla UTF-8-Codierung schlägt beim Öffnen der Mail fehl

8

Ich habe ein seltsames Problem mit der Codierung, wie folgt beschrieben:

Das ù wird jetzt als ¹ im Betreff der E-Mail angezeigt. Die E-Mail wird über die PHP-Mail-Funktion gesendet.

Wenn die E-Mail in der Mailbox angezeigt wird, wird sie korrekt angezeigt. Wenn jedoch jemand die E-Mail öffnet, wird das ù plötzlich zu ¹.

%Vor%

sollte

sein %Vor%

Ich habe bereits die Codierung verwendet.

$emailsubject enthält den oben genannten E-Mail-Betreff.

%Vor%

In localhost funktioniert es richtig, aber auf dem Webserver funktioniert es nicht richtig. Im Webserver ist auch die Codierung standardmäßig auf utf-8 eingestellt.

Was mache ich falsch? Vielen Dank im Voraus.

    
R R 30.11.2013, 06:04
quelle

4 Antworten

3

Ihr Code ist absolut korrekt, es ist kein Fehler darin, aber die anderen Dinge sind fehlerhaft. Wie ich Nachrichtenquelle Header und Nachricht brauche, um Ihnen genau zu sagen, was passiert? Ich habe weiter keine Informationen darüber, ob Sie die E-Mail als Text oder HTML senden. Aber es gibt im Allgemeinen zwei Fragen, die sind:

Fehlende Mime-Version

Grund für das falsche Zeigen des Charakters ist, dass Entwickler vergessen, die Nachricht als MIME-Version zu beschreiben. Wenn die Nachricht den Header "Mime-Version" fehlt, den die Internet-Mail-Standards erfordern, ignoriert Webmail den Header "charset" vollständig und fügt die Nachricht nur dann ein, wenn sie bereits im UTF-8-Zeichensatz enthalten ist.

Betreff mit Sonderzeichen anzeigen

Wenn Sie das Motiv mit utf-8-Codierung anzeigen möchten, müssen Sie das Thema wie folgt codieren:

%Vor%

Wenn die oben genannten Dinge das Problem nicht lösen, dann fordern Sie Sie auf, die RAW-Kopfzeilen der E-Mail zu posten, da dies zu einer besseren Lösung des Problems beitragen wird.

    
Vineet1982 08.12.2013, 17:58
quelle
1

Testen Sie den Zeichensatz mit .htaccess?

%Vor%     
ColoO 02.12.2013 13:49
quelle
1

Da Sie in den Kommentaren angeben, dass Sie Joomla 1.5 verwenden, scheint es ein Problem mit der phpmailer() -Bibliothek in dieser Version zu geben, das den Zeichensatz des Mailers - für die Nachricht - zwingt, Dinge mit dem Zeichen auszusenden Setze die Einstellung von iso-8559-1 . Um dies zu beheben, öffne hier den Core phpmailer() libary:

  

[Pfad zu Ihrer Joomla-Installation] /libraries/phpmailer/phpmailer.php

Um Zeile 50 gibt es eine Einstellung namens $CharSet . Ändere das in utf-8 , wenn es nicht bereits auf dieses gesetzt ist:

%Vor%

Sie können auch Ihre Joomla 1.5-Codebase nach iso-8559-1 durchsuchen, um zu sehen, ob eine Komponente oder Bibliothek iso-8559-1 encoding irgendwo in der Code-Kette erzwingt.

Und eine andere Einstellung, die ich empfehlen würde, ist $Encoding um Zeile 63 herum. Die Standardeinstellung scheint 8bit zu sein, aber ich musste das in der Vergangenheit entweder auf quoted-printable oder base64 anpassen, um einige zu lösen Mailing-Probleme bei bestimmten Setups, an denen ich gerade arbeitete.

%Vor%     
JakeGould 02.12.2013 15:27
quelle
1

Ich schlage vor, Sie Joomla Mailer-Klasse verwenden, könnte der könnte wie folgt aussehen:

%Vor%

Es ist standardmäßig utf8, und ich sehe keine Gründe dafür, es nicht zu benutzen, wenn Sie Joomla benutzen.

    
di3sel 04.12.2013 05:43
quelle