Heim >Datenbank >MySQL-Tutorial >So lösen Sie verstümmelte Zeichen in einer chinesischen MySQL-Abfrage

So lösen Sie verstümmelte Zeichen in einer chinesischen MySQL-Abfrage

WBOY
WBOYnach vorne
2023-06-03 08:03:201752Durchsuche

Verstümmelte MySQL-Abfrage verursacht

MySQL Der Standardzeichensatz ist LATIN1, und UTF-8 ist weit verbreiteter verwendetes Kodierungsformat. Wenn wir zum Speichern chinesischer Daten die UTF-8-Codierung verwenden, bei der Abfrage jedoch die LATIN1-Codierung verwenden, erhalten wir verstümmelte Abfrageergebnisse.

In MySQL können wir das Problem verstümmelter chinesischer Abfragen auf folgende Weise lösen:

  1. Datenbank- und Tabellenkodierung überprüfen#🎜 🎜 #

Wir müssen zunächst prüfen, ob die Codierung der Datenbank und der Tabelle korrekt ist, und sicherstellen, dass sie beim Speichern der Daten mit dem Codierungsformat übereinstimmen. Wir können das Codierungsformat der Datenbank und der Tabelle über die folgende SQL-Anweisung abfragen:

SHOW CREATE TABLE table_name;
SHOW VARIABLES LIKE 'character_set_database';
In den Abfrageergebnissen können wir das Codierungsformat der Datenbank und der Tabelle sowie den Zeichensatz von sehen der Server und der Client sowie die aktuelle Verbindung. Der Zeichensatz stimmt überein.

  1. Legen Sie die MySQL-Verbindungskodierung fest

Sie können den MySQL-Client über die MySQL-CONFIG-Einstellungsanweisung verbinden Das Kodierungsformat ist auf UTF-8 eingestellt, um verstümmelte Zeichen beim Lesen von Daten zu vermeiden. Wir können den folgenden Befehl verwenden, wenn wir eine Verbindung zum MySQL-Server herstellen:

mysql --default-character-set=utf8 -u username -p
Dieser Befehl setzt das Client-Kodierungsformat automatisch auf UTF-8, wenn eine Verbindung mit dem MySQL-Server hergestellt wird, um sicherzustellen, dass keine verstümmelten Zeichen auftreten erscheinen.

  1. Ändern Sie die MySQL-Konfigurationsdatei

Wenn wir MySQL 5.5 oder höher verwenden, in der Konfiguration In In der Datei my.cnf können wir das Kodierungsformat des MySQL-Servers über die folgenden Einstellungen auf UTF-8 einstellen:

[client]
default-character-set=utf8

[mysqld]
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
In dieser Konfigurationsdatei können wir das Standardkodierungsformat des Clients festlegen und Server auf UTF-8, um sicherzustellen, dass beim Lesen von Daten keine verstümmelten Zeichen auftreten.

  1. Stellen Sie die MySQL-Feldkodierung auf UTF-8 ein Wenn Daten im falschen Kodierungsformat verwendet werden, können wir das Kodierungsformat aller Felder in der Datenbank mit dem folgenden Befehl auf UTF-8 einstellen:

    ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
    Der obige Befehl ändert alle Kodierungsformate der Datenbank und Tabelle in UTF-8, um sicherzustellen, dass beim Lesen von Daten keine verstümmelten Zeichen angezeigt werden.
Im tatsächlichen Einsatz können wir je nach Situation unterschiedliche Lösungen wählen. Bei der Lösung des Problems verstümmelter chinesischer Abfragezeichen müssen wir darauf achten, dass die Konvertierung zwischen verschiedenen Zeichensätzen Effizienz erfordert. Daher müssen wir einen Kompromiss zwischen Effizienz und Korrektheit eingehen und ihn auf unsere tatsächlichen Geschäftsanforderungen stützen. Wählen Sie die am besten geeignete Lösung.

Das obige ist der detaillierte Inhalt vonSo lösen Sie verstümmelte Zeichen in einer chinesischen MySQL-Abfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen