1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Problem bei der Kodierung der Seiten lösen
Dieser Leitfaden bezieht sich auf Sie, wenn Sie Probleme mit der Kodierung von Seiten und ungewöhnlichen Zeichen auf Ihren Seiten auftreten.
Universelle Kodierung
Wenn Sie Probleme mit der Seitencodierung haben, ist es wichtig zu überprüfen, ob die Kodierung Ihrer Seite in UTF-8 UTF-8 ist eine universelle Kodierung, die die meisten der weltweit verwendeten Zeichen unterstützt. Es kann vorkommen, dass einige Dateien Zeichen enthalten, die mit UTF-8 nicht kompatibel sind. In diesem Fall müssen Sie sie mit einem geeigneten Texteditor in UTF-8 umwandeln.
Wenn die Kodierung der HTML-Seite z.B. in UTF-8 Die Datenbank ist in Latin-1 Akzente werden nicht richtig von MySQL interpretiert. Wenn die Seiten spezielle Zeichen (Arabische, Chinesische, Akzente) enthalten, können sie auf Ihrer Website korrekt angezeigt werden, aber nicht in phpMyAdmin, oder umgekehrt...
Verwenden Sie einen Text-Editor, der Ihre Dateien in UTF-8 speichern kann. Wenn Sie Textdateien mit SQL-Code importieren, müssen Sie sie mit einer Software bearbeiten, die in UTF-8 speichert.
UTF-8 in PHP
Um die UTF-8-Header mit PHP zu zwingen, können Sie die Funktion header()
mit dem Parameter Content-Type
Hier ist ein Beispiel für einen Code, mit dem die Zeichenkodierung in UTF-8 erzwungen werden kann:
<?php
header('Content-Type: text/html; charset=utf-8');
?>
UTF-8 via .htaccess
Um die Kodierung von Zeichen in UTF-8 über die .htaccess-Datei Ihrer Website zu zwingen, um HTML-Inhalte hinzuzufügen:
AddDefaultCharset utf-8
Header set Content-Type "text/html; charset=utf-8"
und für PHP-Inhalte hinzufügen:
php_value default_charset UTF-8
php_value mbstring.internal_encoding UTF-8
UTF-8 in HTML
Um die Kodierung der Zeichen in UTF-8 im HTML-Code anzugeben, können Sie den Meta-Tag verwenden. charset
:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Titre de la page</title>
</head>
<body>
<!-- Contenu de la page -->
</body>
</html>
Stellen Sie auch sicher, dass alle auf Ihrer Website verwendeten Dateien, wie CSS-Stildateien und JavaScript-Skripte, auch in UTF-8 kodiert sind. Dadurch wird sichergestellt, dass alle Zeichen auf Ihrer Website korrekt angezeigt werden.
UTF8 in Datenbank
Um die Kodierung von UTF-8-Datenbanken und Tabellen in phpMyAdmin anzuzeigen, können Sie folgende Schritte ausführen:
- Verbinden Sie sich mit Ihrem phpMyAdmin Control Panel.
- Klicken Sie oben auf die Registerkarte "Operationen."
- Suchen Sie im Abschnitt "Tabellenoptionen" nach der Zeile "Kollektion" und klicken Sie auf den Dropdown-Button.
- Wählen Sie eine Snack-Option, die UTF-8 verwendet, zum Beispiel
utf8_general_ci
. - Klicken Sie unten auf der Seite auf den Button "Ausführen," um die Änderungen zu speichern.
PHP-Funktion hinzufügen mysql_set_charset
bei der Verbindung, die von mysql_connect erzeugt wird, um die Kodierung 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 auch in Ihrem gesamten Hosting ändern, indem Sie diese Dokumentation.
Sobald die MySQL-Verbindung aus einem PHP-Skript hergestellt ist, können Sie auch den Typ des UTF8 Charsets mit diesen Befehlen angeben:
mysql_query("SET NAMES 'utf8';");
mysql_query("SET CHARACTER SET 'utf8';");
Akzente / Sonderzeichen
Wenn Sie ein Backup Ihrer MySQL-Datenbank (so genanntes "Dump") zurückbekommen und es in Ihre eigene Datenbank importieren, können Akzente (wie z.B. é, zu, o) als seltsame Symbole wie Fragezeichen (z.B. "?") erscheinen. anstatt eines Akzents).
Dies geschieht, weil MySQL Backups in der Regel mit einem speziellen Format namens UTF-8
In diesem Format verwenden Buchstaben mit Akzenten mehr Platz (sie sind auf zwei Bytes kodiert, ein wenig wie zwei "Einheiten" Daten pro Zeichen). Auf den Servern funktioniert es gut, aber wenn Sie auf Ihrem PC arbeiten, müssen Sie möglicherweise einige Konfigurationen anpassen, damit der Import korrekt erfolgt, indem Sie UTF-8
Das Problem der seltsamen Zeichen tritt in der Regel auf, wenn es eine Entschlüsselung zwischen Backup-Datei und Import gibt. Dies kann geschehen, wenn die Datei in einem Format kodiert wird (z.B. UTF-8
) aber MySQL erwartet eine weitere Kodierung (z.B. latin1
).
Hier sind einige Lösungen:
- Datei konvertieren : Sie können die Backup-Datei von
UTF-8
in ein anderes Format namenslatin1
, bevor Sie es in Ihre Datenbank importieren. Dies kann verhindern, dass Akzente falsch interpretiert werden, aber es hat Einschränkungen. Wenn die Datei Zeichen enthält, die nicht inlatin1
(wie bestimmte besondere oder außereuropäische Zeichen) können Sie diese Zeichen bei der Konvertierung verlieren. Dies ist also eine vorsichtige Lösung und hängt von der Art der Daten in Ihrer SQL-Datei ab. - Geben Sie das richtige Format beim Import an : Wenn Sie die Datei nicht konvertiert haben, können Sie beim Import angeben, dass die Datei im Format
iso-latin1
(Wenn Sie eine SQL-Datei importieren, können Sie ausdrücklich angeben, dass die Datei in ISO-8859-1 ist, auch Latein genannt1). Dadurch wird die Kodierung der Datei mit der von MySQL erwarteten abgestimmt, wodurch das Problem der schlecht angezeigten Zeichen in der Regel gelöst wird.
Wenn Sie Fragezeichen anstelle von Akzenten sehen, bedeutet dies wahrscheinlich, dass die Sicherungsdatei in einem anderen Format als UTF-8
, aber dass Ihre Software versucht, es zu importieren, als ob es in UTF-8
Um dies zu vermeiden, können Sie unter Linux einen Befehl verwenden, der als iconv
um die Datei vor dem Import in UTF-8 zu konvertieren. Dadurch wird sichergestellt, dass die Kodierung mit den Erwartungen von MySQL übereinstimmt.