Das ständige Problem: Sonderzeichen und Umlaute

Fast jeder, der schoneinmal eine Website erstellt hat, kennt es:
Plötzlich werden statt Umlauten ??? oder komische Zeichen angezeigt.
Wie man das umgeht, zeige ich hier!

PHP
Als erstes ist es wichtig, mit PHP richtige Header zu senden.

header("Content-type: text/html; charset=utf-8");

Dies sagt dem Client, dass er die empfangenen Inhalte in UTF-8 darstellen soll.

Wichtig ist, dass dieser Code vor JEDER Ausgabe steht.
Wenn auch nur ein Byte davor an den Client gesendet wird, schlägt header() fehl und meldet sich mit einer Fehlermeldung!

Datei speichern
Außerdem muss man alle Dateien, die Ausgaben erzeugen, als UTF-8 speichern. Ich kann für diesen Zweck den Editor PSPad empfehlen.

MySQL
Wenn man mit einer Datenbank arbeitet, sind folgende Queries nach jedem Verbindungsaufbau sinnvoll:

//verbindung aufbauen
$db= new datenbank("host", "user","password");
$db->db_select("tabelle");

//ab hier wirds wichtig:
$db->sql_query("SET NAMES 'utf8'");
$db->sql_query("SET character_set_results='utf8'");
$db->sql_query("SET character_set_database='utf8'");

//normal mit der DB arbeiten:
$db->sql_query("irgend ein SELECT");
$db->sql_query("irgend ein INSERT");
$db->sql_query("blabla...");

(das Beispiel verwendet die DB-Klasse von mir)

HTML
Zum Schluss sollte man noch folgende Meta-Angabe machen:

<meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />

Das sagt eurem Browser, dass ein UTF8-kodiertes Dokument kommt. (Zusätzlich zum Header mit PHP)

Mit diesen Tipps sollte eigentlich nichts mehr schiefgehen 😉

1 Star2 Stars3 Stars4 Stars5 Stars (Wurde noch nicht bewertet)
Loading...


4 Kommentare zu “Das ständige Problem: Sonderzeichen und Umlaute”

  1. […] Das ständige Problem: Sonderzeichen und Umlaute (71) […]

  2. […] Das ständige Problem: Sonderzeichen und Umlaute (182) […]

  3. Hey Simon,

    die meta-tags in der html-ausgabe solltest du an dieser stelle noch mit dem code-tag einfügen, da sie nicht angezeigt werden.

    MfG,
    Adva

  4. Danke für den Hinweis, wird erledigt!

Hinterlasse einen Kommentar!

Time limit is exhausted. Please reload the CAPTCHA.

»Informationen zum Artikel

Autor: Simon
Datum: 17.05.2008
Zeit: 19:52 Uhr
Kategorien: (x)HTML & CSS, MySQL, PHP
Gelesen: 3914x heute: 2x

Kommentare: RSS 2.0.
Diesen Artikel kommentieren oder einen Trackback senden.

»Meta