Zeichensatzeinstellungen für HTML, PHP und MySQL

Folgende Einstellungen müssen beachtet werden, damit die Anzeige von Umlauten (ä, ö, ü, …) im Zusammenspiel von HTML, PHP und MySQL funktioniert.

Am besten verwendet man UTF-8, bzw. UTF-8-MB4.

Notepad++ bzw. andere Editoren

Es ist wichtig, dass der Editor zur Bearbeitung und Erstellung der HTML- bzw. PHP-Dateien die richtige Zeichenkodierung eingestellt hat. Im Falle von Notepad++ sieht dies so aus:

HTML- bzw. PHP-Datei

Im Kopf der HTML- bzw. PHP-Datei (also zwischen den <head>-Tags wird ein Meta-Tag angegeben, der sich auf die Zeichenkodierung bezieht:

<meta http-equiv="content-type" content="text/html; charset=utf-8">

MySQL-Datenbank (phpMyAdmin)

Legt man in phpMyAdmin eine neue Datenbank an, so achtet man darauf, diese gleich mit dem richtigen Zeichensatz (utf8mb4_general_ci) zu erstellen. utf8mbf unterstützt auch Zeichen, die außerhalb des sogenannten „Basic Multilingual Plane“ liegen, zum Beispiel auch Emojis oder Symbole.

Möchte man die Zeichensatzeinstellung ändern, kann man in phpMyAdmin unter „Operationen“ - „Kollation“ durchführen:

Die einzelnen Tabellen sollen ebenfalls unter „Kollation“ die Einstellung utf8mb4_general_ci haben, damit auch bei den Tabellen der richtige Zeichensatz gewährleistet ist.

PHP-MySQL

Sobald die Verbindung zur Datenbank aufgenommen wurde, soll auch der Zeichensatz für die MySQL-Zugriffsanfragen an die Datenbank auf utf8mb4 festgelegt werden.

Der Befehl dazu lautet wie folgt, wobei $con die Variable der mysqli_connect-Verbindung ist:

    mysqli_set_charset($con, "utf8mb4");

connect.inc.php

<?php
    $hostname = "127.0.0.1";
    $user = "root";
    $passwort = "";
    $dbname = "db_wordpress";
 
    $con = mysqli_connect($hostname,$user,$passwort)
    	or die ("Sql- Verbindung konnte nicht aufgenommen werden.");
    mysqli_set_charset($con, "utf8mb4");
    mysqli_select_db($con, $dbname)
    	or die ("Datenbank kann nicht ge&ouml;ffnet werden.");
?>