Warum kann ich sehe nicht Umlaute in meiner mysql DB?
Frage
Ich bin die folgenden Zeichen in meine DB einfügen: 汉字 / 漢字
Dies ist der Meta-Tag auf der Seite, die die Zeichen einfügt:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Ich habe geändert alle Spalten in meiner Tabelle, die die Zeichen hält sein utf8_unicode_ci
Die fremden Zeichen zeigen, wie dies in der DB: æ ± ‰ å- / æ¼ ¢ å -
Wenn ich eine SQL-Anweisung verwenden, um auf einer Seite diese fremden Zeichen angezeigt werden, zeigen sie korrekt wieder: 汉字 / 漢字
Ich vermute, ich eine Einstellung habe, die nicht richtig in meiner DB ist, da sie es richtig speichert, sich aber nicht korrekt angezeigt werden.
Was kann ich tun, die Umlaute zu machen richtig angezeigt in meiner DB?
EDIT: Hier ist mein Einsatz:
$sql = 'INSERT INTO orders (foreign_characters)
VALUES (?)';
$stmt = $conn->stmt_init();
$stmt->bind_param('s', $_SESSION['foreign_characters']);
$inserted = $stmt->execute();
Lösung
Ist die Verbindung zur Datenbank auch UTF-8 codiert?
Geben Sie diesen einen Versuch:. Direkt nach dem auf die MySQL-Datenbank verbinden, führen Sie die folgende Abfrage
SET NAMES utf8;
Dies sollte den Trick tun (siehe MySQL doc ). (Ja, haben Sie das jedes Mal tun Sie verbinden.)
BTW:. Nicht nur verlassen sich auf die <meta>
-Tag, senden Sie den entsprechenden HTTP-Header