UTF-8 Name aus MySQL in E-Mail verwenden
Kukulkan
- php
0 dedlfix
Hallo,
Ich habe eine MySQL Datenbank in der ich Namen speichere. Dazu ist MySQL für UTF-8 Zeichensatz konfiguriert. Wenn ich die Rückgaben aus der Datenbank in einer HTML Seite direkt mit...
<meta content="text/html; charset=utf-8" http-equiv="content-type">
...anzeige, dann klappt das wunderbar.
Zum versenden von E-Mails an diese Person, mache ich das HTML selbst und dann schaut das so aus:
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<title>Aktivieren Sie ihre e-Mail Adresse</title>
</head>
<body bgcolor="#FFFFFF">
Text mit dem Namen drinnen......
Leider werden die Umlaute und Sonderzeichen (zB ALT+0999) im Namen aber sehr seltsam angezeigt (Outlook und Thunderbird). Was muss ich tun, damit das klappt?
Ich kenne utf8_encode(), utf8_decode() und htmlentities(), aber wie setze ich die in diesem Fall ein? Alle Tests blieben erfolglos :-(
Kukulkan
echo $begrüßung;
Ich habe eine MySQL Datenbank in der ich Namen speichere. Dazu ist MySQL für UTF-8 Zeichensatz konfiguriert.
Diese Aussage ist sehr pauschal. MySQL kennt 10 verschiedenartige Stellen, an denen Kodierungen eine Rolle spielen. Hast du alle beachtet? Vor allem sind die Kodierungen der Felder und die der aktuellen Verbindung relevant. MySQL-Handbuch Kapitel: Character Set Support
Zum versenden von E-Mails an diese Person, mache ich das HTML selbst und dann schaut das so aus:
Leider werden die Umlaute und Sonderzeichen (zB ALT+0999) im Namen aber sehr seltsam angezeigt (Outlook und Thunderbird). Was muss ich tun, damit das klappt?
Gilt in einer Email vielleicht auch das gleiche Prinzip wie bei HTTP? Wenn im HTTP-Header "Content-Type" eine Charset-Angabe steht, gilt diese. Wenn nicht, gilt die aus dem gleichnamigen Meta-Element. HTML-Mails sind in "normale" Mails eingebunden und haben einen eigenen Header. Wie sieht der bei dir aus?
"Seltsam" ist keine Beschreibung, mit der jemand mit Wissen vermuten kann, was konkret schief gelaufen ist. Beschreibe bitte genauer. Am besten ist es, wenn du die Byte-Werte der "seltsamen" Zeichen mit einschlägigen Code-Tabellen vergleichst, z.B. UTF-8 und das hierzulande immer noch übliche ISO-8859-1 bzw. Win-1252.
Ich kenne utf8_encode(), utf8_decode() und htmlentities(), aber wie setze ich die in diesem Fall ein? Alle Tests blieben erfolglos :-(
Wenn du nicht weißt, von welcher Kodierung in welche du kodieren musst bleibt das alles nur ein Glücksspiel.
echo "$verabschiedung $name";