1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Probleme mit der Seitenkodierung lösen
Dieser Leitfaden ist für Sie gedacht, wenn Sie Probleme mit der Codierung von Seiten und merkwürdigen Zeichen haben, die auf Ihren Seiten angezeigt werden.
Universelle Codierung
Wenn Sie Probleme mit der Codierung von Seiten haben, ist es wichtig sicherzustellen, dass die Codierung Ihrer Seite auf UTF-8 festgelegt ist. UTF-8 ist eine universelle Codierung, die die meisten weltweit verwendeten Zeichen unterstützt. Es ist möglich, dass einige Dateien Zeichen enthalten, die mit der UTF-8-Codierung nicht kompatibel sind. In diesem Fall müssen Sie sie mit einem geeigneten Texteditor in UTF-8 konvertieren.
Wenn die HTML-Seitencodierung beispielsweise auf UTF-8 eingestellt ist, während die Datenbank in latin-1 ist, werden Akzente möglicherweise nicht korrekt von MySQL interpretiert. Wenn Seiten Sonderzeichen enthalten (Arabisch, Chinesisch, Akzente), können sie auf Ihrer Website korrekt angezeigt werden, 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, müssen Sie diese mit einer Software bearbeiten, die in UTF-8 speichert.
UTF-8 in PHP
Um UTF-8-Header auf Ihrer Website mit PHP zu erzwingen, können Sie die header()
-Funktion mit dem Content-Type
-Parameter verwenden. Hier ist ein Beispielcode, um die Zeichenkodierung auf UTF-8 zu erzwingen:
<?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 als UTF-8 im HTML-Code anzugeben, können Sie das charset
-Meta-Tag verwenden:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Seitentitel</title>
</head>
<body>
<!-- Seiteninhalt -->
</body>
</html>
Stellen Sie außerdem sicher, dass alle auf Ihrer Website verwendeten Dateien, wie CSS-Dateien und JavaScript-Skripte, ebenfalls in UTF-8 codiert sind. Dies stellt sicher, dass alle Zeichen auf Ihrer Website korrekt angezeigt werden.
UTF-8 in der Datenbank
Um die Codierung von Datenbanken und Tabellen in UTF-8 in phpMyAdmin (neu) zu deklarieren, können Sie folgende Schritte ausführen:
- Melden Sie sich bei Ihrem phpMyAdmin-Bedienfeld an
- Klicken Sie oben auf die Registerkarte "Operationen"
- In der Sektion "Tabellenoptionen" suchen Sie nach der Zeile "Kollation" und klicken Sie auf die Dropdown-Schaltfläche
- Wählen Sie eine Kollationsoption aus, die die UTF-8-Codierung verwendet, z. B.
utf8_general_ci
- Klicken Sie auf die Schaltfläche "Ausführen" unten auf der Seite, um die Änderungen zu speichern
Fügen Sie der von mysql_connect erstellten Verbindung die PHP-Funktion mysql_set_charset hinzu, um die Codierung dieser Verbindung zu bestimmen (wenn Sie sie nicht angeben, kann der Standardwert dieses Parameters von Server zu Server variieren):$connection = mysql_connect($server, $username, $password);
mysql_set_charset('utf8', $connection);
Sie können diese Standardeinstellung für Ihr gesamtes Hosting auch ändern, indem Sie diese Dokumentation befolgen.
Nachdem die MySQL-Verbindung von einem PHP-Skript hergestellt wurde, 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 (z. B. "?") ersetzt werden.
MySQL-Datenbank-Backups werden im UTF8-Format erstellt. Akzentuierte Zeichen sind dann auf zwei Bytes codiert. Das Importieren dieser Backups stellt auf den Servern kein Problem dar, Sie müssen jedoch Ihre lokale Konfiguration anpassen, um UTF8-Datenbanken auf Ihrem Computer zu importieren.
Zum Beispiel können Sie vor dem Import utf8 -> latin1 aus der SQL-Datei konvertieren.
Andernfalls geben Sie beim Importieren der Datenbank einfach an, dass Ihre Eingabedatei im Format iso-latin1 vorliegt (Importbereich, "Zeichensatz der Datei") und der Import wird korrekt durchgeführt.
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.