Oft werden Umlaute falsch auf der Webseite angezeigt.
Auch der Inhalt einer E-Mail, vom Kontaktformular der Website oder Daten
aus der Datenbank,
können falsche Umlautzeichen enthalten — Beispiel:
• Damit die Browser wissen, welche Kodierung die Seite verwendet, gibt es einen bestimmten
Meta-Tag.
In den meisten Fällen hilft es schon wenn Sie im
Head-Tag folgendes einfügen:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
ISO-8859-1 (ISO Latin 1) umfasst die in
Westeuropa gebräuchlichen Buchstaben, Umlaute und Sonderzeichen.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
UTF-8 hat eine zentrale Bedeutung als globale Zeichenkodierung.

Jede ausgelieferte HTML-Seite sollte im Header eine Angabe besitzen, in der die Zeichencodierung hinterlegt ist, die vom Webserver geliefert wird. Der Browser orientiert sich daran und stellt die Zeichen gemäß dieser Angabe dar.
• Editoren
Es ist
unbedingt notwendig, dass der Editor die HTML/PHP-Datei
speichert mit welcher die Zeichenkodierung im Dokument angegeben wurde.
Sie sollten daher einen Editor verwenden, in dem Sie beim speichern die Zeichenkodierung wählen können.
Bildschirmfoto:
Notepad++ (kostenlos)
• Umlautzeichen auf der Website verwenden
Sie können aber auch alle Umlaute duch die folgenden Zeichen ersetzen:
| ä |
ä |
Ä |
Ä |
ö |
ö |
Ö |
Ö |
| ü |
ü |
Ü |
Ü |
ß |
ß |
Weitere Umlautzeichen finden Sie auf
ASCII, Unicode, Steuerzeichen, Binärzahlen und Sonderzeichen
• PHP-header()
header('Content-Type: text/html; charset=iso-8859-1');
oder:
header('Content-Type: text/html; charset=utf-8');
• PHP-setlocale()
setlocale() - Setzt Locale Informationen
setlocale(LC_TIME, 'de_DE.utf8');
• PHP-htmlentities()
Probleme mit htmlentities() bei UTF-8 Kodierung beheben.
htmlentities($str, ENT_QUOTES,'UTF-8');
• PHP-strlen()
Probleme mit strlen() bei UTF-8 Kodierung beheben.
echo strlen("Mäßigung"); // Ausgabe: 10
echo strlen(utf8_decode("Mäßigung")); // Ausgabe: 8
• MySQL
Zeichensatz ändern:
mysql_query("SET CHARACTER SET 'utf8'");
Zeichensatz anzeigen:
$verbindung = mysql_connect('localhost', 'user', 'pass');
mysql_client_encoding($verbindung);
Zeichensatz ändern: (PHP 5)
$verbindung = mysql_connect('localhost', 'user', 'pass');
mysql_set_charset("utf8", $verbindung); oder
mysql_set_charset("latin1", $verbindung);
Tabelle erzeugen:
CREATE TABLE `tabelle` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`firma` varchar(50) COLLATE latin1_german1_ci NOT NULL,
`ort` varchar(50) COLLATE latin1_german1_ci DEFAULT NULL
) ENGINE=MyISAM;
• JavaScript
Externes JavaScript:
<script type="text/javascript" src="javascript.js" charset="ISO-8859-1">
Internes JavaScript:
<script type="text/javascript" charset="ISO-8859-1"> ... </script>
• AJAX
Enthält die Antwort (
response), einer Anfrage,
Umlaute und wird
diese mit PHP zurück gegeben verwenden Sie folgende Anweisung:
header('Content-Type: text/html; charset=iso-8859-1');
Andernfalls verwenden Sie:
header('Content-Type: text/html; charset=utf-8');
Form Request senden (JavaScript)
XMLHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
• XML
Für XML verwendet man am Anfang der Datei:
<?xml version="1.0" encoding="utf-8" ?>
• .htaccess-Datei
AddDefaultCharset UTF-8
Siehe auch:
PHP Bausteine:
Falsche Umlautzeichen In PHP ersetzen
HTML:
ASCII, Unicode, Steuerzeichen, Binärzahlen und Sonderzeichen