Charset UTF-8 und php-header() funktioniert nicht
Ich habe einige Probleme mit dem Zeichensatz auf meiner website. Ich kann nicht die UTF-8-Zeichensatz zu arbeiten und ich bekomme � statt Å. Ja, ich habe gesucht, um das web nach Antworten und ich habe bereits den folgenden code:
<!DOCTYPE HTML>
<head>
<?php header('Content-type: text/html; charset=utf-8'); ?>
<meta http-equiv="Content-Type" content="text/html" charset=utf-8" />
<title><?php echo $db_title; ?></title>
</head>
<body>
Some content with letters æøå
</body>
</html>
Die Datenbank verwendet latin1_swedish_ci
.
Jede Idee, was es sein könnte?
InformationsquelleAutor Gjert G | 2015-10-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie die PHP -
header
tag, bevor irgendeine Ausgabe an den browser (wie bereits von JJ Cantillon)Während PHP und HTML verwenden Sie die korrekten UTF-8-es ist erwähnenswert, dass MySQL verwendet eine reduzierte version des UTF-8 und so bei der Auswahl der Sortierung der Datenbank-Tabellen/- Felder die "utf8_general_ci" (und ähnliche) sind nicht vollständigen Zeichensätze und Zeichen, die Sie anzeigen möchten, die nicht ordnungsgemäß gespeichert werden.
Was Sie tun müssen, ist, um sicherzustellen, verwendet MySQL den kompletten UTF-8-Zeichensatz, indem Sie
Auch, wenn Sie eine Verbindung herstellen Ihr Skript, um die Datenbank, die Sie angeben müssen, die gleichen (
utf8mb4
) Zeichensatz für PHP/MySQL Kommunikation - so etwas wie (soweit MySQLi oder PDO etc.)oder MySQLi Lesen, auf http://php.net/manual/en/mysqli.set-charset.php
Wenn Sie speichern Ihre Daten in die SQL als
utf8mb4
aber nur die übertragung der Daten mit standard-MySQL-utf8 (3bytes statt 4bytes), dann die Zeichensätze werden nach oben geschraubt im Verkehr.Lesen: https://stackoverflow.com/a/16893103/3536236
InformationsquelleAutor Martin
Werden Sie brauchen, um den header vor der Ausgabe jeglichen html.
Versuchen, um den header vor dem ersten HTML-tag. EG:
Ahh, das macht Sinn. Gut zu hören, Sie arbeitete es aus.
InformationsquelleAutor JJ Cantillon
Nach viel recherche stieß ich auf den folgenden Frage. In die Datenbank-Verbindung musste ich angeben, dass ich wollte, dass die UTF-8-Zeichensatz. Ich habe es auf folgende Weise:
Es muss ein server-update von der host, der das problem verursacht, da ich noch nicht von dem problem betroffen, bevor jetzt.
utf8mb4
eher als die standard-utf8-MySQL.InformationsquelleAutor Gjert G