1. Gründe für verstümmelte Zeichen
Wenn der Zeichensatz von MySQL nicht mit dem Zeichensatz übereinstimmt von PHP werden verstümmelte Zeichen angezeigt. Die spezifischen Gründe sind wie folgt:
Der Zeichensatz von MySQL und der Zeichensatz von PHP sind inkonsistent.
Der Standardzeichensatz von MySQL ist UTF-8 und der Standardzeichensatz von PHP für ISO-8859-1. Wenn Sie in Ihrem PHP-Code keinen Zeichensatz angeben, verwendet PHP den ISO-8859-1-Zeichensatz. Wenn zu diesem Zeitpunkt die von MySQL abgefragten Daten UTF-8-Zeichen enthalten, werden verstümmelte Zeichen angezeigt.
Der Zeichensatz der MySQL-Datentabelle stimmt nicht mit dem Zeichensatz des MySQL-Servers überein.
In MySQL verfügt jede Datentabelle über einen Standardzeichensatz. Wenn der Zeichensatz der Datentabelle nicht mit dem Zeichensatz des MySQL-Servers übereinstimmt, werden möglicherweise verstümmelte Zeichen angezeigt.
Die Art und Weise, wie PHP eine Verbindung zu MySQL herstellt, ist falsch
Bei der Verbindung zu MySQL verfügt PHP über verschiedene Verbindungsmethoden, wie mysql_connect, mysqli_connect, PDO usw . Verschiedene Verbindungsmethoden verwenden unterschiedliche Kodierungsmethoden. Bei falscher Auswahl führt dies zu Problemen mit verstümmeltem Code.
2. Lösen Sie das Problem mit verstümmeltem Code
Aus den oben genannten Gründen können die folgenden Maßnahmen ergriffen werden, um das Problem mit verstümmeltem Code zu lösen Codeproblem.
Zeichensatz für PHP angeben
Lösen Sie im PHP-Code das Problem verstümmelter Zeichen, indem Sie den Zeichensatz angeben. Sie können den folgenden Code verwenden:
header('Content-Type:text/html;charset=utf-8');
MySQL-Standardzeichensatz ändern
MySQL kann in der MySQL-Konfigurationsdatei geändert werden my.cnf Der Standardzeichensatz. Öffnen Sie die Datei, suchen Sie den Abschnitt [mysqld] und fügen Sie den folgenden Code hinzu:
character-set-server=utf8
Ändern Sie den Zeichensatz der MySQL-Daten table
Sie können den Zeichensatz der Datentabelle durch die folgende Anweisung ändern:
ALTER TABLE {table_name} CONVERT TO CHARACTER SET utf8;
Ändern Sie die Art und Weise, wie PHP eine Verbindung herstellt zu MySQL
Sie können die PDO-Verbindung MySQL verwenden und den Zeichensatz beim Herstellen der Verbindung wie folgt angeben:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'password');
Wenn Sie MySQL verwenden, um eine Verbindung zu MySQL herzustellen, Sie können den Zeichensatz über den folgenden Code angeben:
$mysqli = mysqli_connect('localhost', 'root', 'password', 'test'); mysqli_set_charset($mysqli, 'utf8');
Speichern Sie die PHP-Datei im UTF-8-Codierungsformat
Wenn Ihre PHP-Datei chinesische Zeichen enthält, Achten Sie darauf, die Datei im UTF-8-Codierungsformat zu speichern, da sonst verstümmelte Zeichen angezeigt werden.
Das obige ist der detaillierte Inhalt vonSo lösen Sie das verstümmelte Problem der PHP-Verbindung zu MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!