1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Ein Problem mit der Seitenkodierung lösen
Dieser Leitfaden ist für Sie relevant, wenn Sie Probleme mit der Seitenkodierung und abnormalen Zeichen auf Ihren Seiten haben.
Universelle Kodierung
Wenn Sie Probleme mit der Seitenkodierung haben, ist es wichtig zu überprüfen, ob Ihre Seitenkodierung auf UTF-8 eingestellt ist. UTF-8 ist eine universelle Kodierung, die die meisten weltweit verwendeten Zeichen unterstützt. Es kann vorkommen, dass einige Dateien Zeichen enthalten, die mit UTF-8-Kodierung nicht kompatibel sind. In diesem Fall müssen Sie diese mit einem geeigneten Texteditor in UTF-8 konvertieren.
Wenn die HTML-Seitenkodierung zum Beispiel UTF-8 ist, während die Datenbank in latin-1 vorliegt, werden Akzente von MySQL nicht korrekt interpretiert. Wenn die Seiten Sonderzeichen (arabische Texte, Chinesisch, Akzente) enthalten, werden sie möglicherweise korrekt auf Ihrer Website angezeigt, aber nicht in phpMyAdmin oder umgekehrt...
Verwenden Sie einen Texteditor, der Ihre Dateien in UTF-8 speichern kann. Wenn Sie Textdateien mit SQL-Code importieren, sollten Sie diese mit einer Software bearbeiten, die in UTF-8 speichert.
UTF-8 in PHP
Um die Website-Header in UTF-8 mit PHP zu erzwingen, können Sie die Funktion header()
mit dem Parameter Content-Type
verwenden. Hier ist ein Beispielcode, der die Zeichenkodierung auf UTF-8 zwingt:
<?php
header('Content-Type: text/html; charset=utf-8');
?>
UTF-8 über .htaccess
Um die Zeichenkodierung über die .htaccess-Datei Ihrer Website auf UTF-8 zu erzwingen, fügen Sie für HTML-Inhalte Folgendes hinzu:
AddDefaultCharset utf-8
Header set Content-Type "text/html; charset=utf-8"
Und für PHP-Inhalte fügen Sie Folgendes hinzu:
php_value default_charset UTF-8
php_value mbstring.internal_encoding UTF-8
UTF-8 in HTML
Um die Zeichenkodierung in UTF-8 im HTML-Code anzugeben, können Sie das charset
-Meta-Tag verwenden:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Seitenüberschrift</title>
</head>
<body>
<!-- Seiteninhalt -->
</body>
</html>
Stellen Sie sicher, dass auch alle Dateien, die auf Ihrer Website verwendet werden, wie CSS-Stylesheets und JavaScript-Skripte, in UTF-8 kodiert sind. Dies gewährleistet, dass alle Zeichen auf Ihrer Website korrekt angezeigt werden.
UTF-8 in Datenbanken
Um die Kodierung von Datenbanken und Tabellen in UTF-8 in phpMyAdmin (neu) zu deklarieren, können Sie die folgenden Schritte ausführen:
- Loggen Sie sich in Ihr phpMyAdmin-Kontrollpanel ein
- Klicken Sie oben auf die Registerkarte "Operationen"
- Im Abschnitt "Tabellenoptionen" suchen Sie die Zeile "Collation" und klicken auf den Dropdown-Button
- Wählen Sie eine Collation-Option, die UTF-8-Kodierung verwendet, z. B.
utf8_general_ci
- Klicken Sie auf die Schaltfläche "Ausführen" am unteren Rand der Seite, um die Änderungen zu speichern
Fügen Sie die PHP-Funktion mysql_set_charset
zur Verbindung hinzu, die durch mysql_connect
erstellt wurde, um die Kodierung dieser Verbindung zu bestimmen (wenn Sie dies nicht angeben, kann der Standardwert für dieses Parameter von Server zu Server variieren):
$connection = mysql_connect($server, $username, $password);
mysql_set_charset('utf8', $connection);
Sie können dieses Standardparameter auch auf Ihrem gesamten Hosting ändern, indem Sie diese Dokumentation befolgen.
Sobald die MySQL-Verbindung von einem PHP-Skript hergestellt ist, können Sie auch den UTF8-Zeichensatztyp mit diesen Befehlen angeben:
mysql_query("SET NAMES 'utf8';");
mysql_query("SET CHARACTER SET 'utf8';");
Akzente / Sonderzeichen
Wenn Sie ein MySQL-Dump (Backup) abrufen und in Ihre Datenbank importieren, kann es vorkommen, dass alle Akzente durch seltsame Zeichen (wie "?") ersetzt werden.
MySQL-Backups werden im UTF8-Format erstellt. Akzentuierte Zeichen werden dann in zwei Bytes kodiert. Der Import dieser Backups ist auf Servern unproblematisch, jedoch müssen Sie Ihre lokale Konfiguration für den Import von UTF8-Datenbanken auf Ihrem Computer anpassen.
Sie können beispielsweise eine Konvertierung von utf8 nach latin1 der SQL-Datei vor dem Import durchführen.
Andernfalls geben Sie beim Import der Datenbank einfach an, dass Ihre Eingabedatei im Format iso-latin1 vorliegt (Importabschnitt, "Zeichensatz der Datei"), und der Import erfolgt korrekt.
Wenn Sonderzeichen in '?' umgewandelt werden, ist es wahrscheinlich, dass die Datei, die Sie importieren, im nicht-UTF8-Format vorliegt und die Software so konfiguriert ist, dass sie eine UTF-8-Datei importiert. Linux kann mit dem Befehl 'iconv' nach UTF-8 konvertieren.