Charset/Encoding Probleme? Diverse Möglichkeiten zur Abhilfe!
Juni 4, 2009 • Categories: PHP, Web-/Tipps&Tricks • Tags: charset, encoding, iso-8859-1, utf-8 • Comments
Wer kennt das nicht, Umlaute und Sonderzeichen werden falsch angezeigt obwohl man die Standards eingetragen hat:
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> ...
Nun kann man auch ein Default-Charset für diverse Dateien schon in der Apache-Conf oder in einer seperaten .htaccess angeben. Dieses zieht aber meistens nur dann wenn man sonst kaum angaben gemacht hat.
<files "*.*"> AddDefaultCharset iso-8859-1 </files>
Wer mit PHP arbeitet und immernoch Probleme hat der sollte einmal diese Zeile direkt zu Begin der Seite (or dieser Funktion kann keine andere Ausgabe gemacht werden) einfügen!
header('Content-Type: text/html; charset=iso-8859-1');
Manchmal bekommt man Text, z.B. aus der Datenbank oder aus einer anderen Datei, welcher in UTF-8 geschrieben wurde und man ihn nun aber in einer ISO-8859-1 Seite ausgeben möchte. In diesem Fall kann man den Text konvertieren. Dazu sollte man sich einmal diese Funktionen genauer anschauen.
echo iconv("UTF-8","ISO-8859-1","Dies ist ein Test üöä."); // ODER echo utf8_decode("Dies ist ein Test üöä.")
Zu iconv gibt es eine ganze Reihe von Funktionen und zu utf8_decode gibt es auch das gegenstück utf8_encode.
Viel Erfolg!
Neueste Kommentare