MySQL ist ein gängiges relationales Datenbankverwaltungssystem. Für viele Entwickler ist es zu einer Notwendigkeit für die Entwicklungsarbeit geworden. Bei der Verwendung von MySQL können jedoch viele Benutzer auf das Problem „Chinesisch kann nicht verwendet werden“ stoßen.
MySQLs Unfähigkeit, Chinesisch zu verwenden, äußert sich hauptsächlich in zwei Aspekten: Einerseits in den verstümmelten chinesischen Zeichen in der MySQL-Befehlszeilenschnittstelle und andererseits im Problem der Speicherung und Abfrage chinesischer Zeichen in der MySQL-Datenbank. In diesem Artikel werden diese beiden Aspekte von Problemen im Detail untersucht und entsprechende Lösungen bereitgestellt.
Chinesische verstümmelte Zeichen in der MySQL-Befehlszeilenschnittstelle
Die MySQL-Befehlszeilenschnittstelle ist eine Kernfunktion von MySQL. Entwickler können in dieser Schnittstelle verschiedene Befehle ausführen. Viele Benutzer werden jedoch verstümmelte chinesische Zeichen vorfinden, wenn sie die MySQL-Befehlszeilenschnittstelle verwenden. Dies liegt hauptsächlich daran, dass der Standardzeichensatz von MySQL „latin1“ anstelle von „utf8“ ist.
Im Folgenden wird beschrieben, wie das chinesische verstümmelte Problem in der MySQL-Befehlszeilenschnittstelle gelöst wird.
Methode 1: Geben Sie einen Benutzernamen an, der chinesische Zeichensätze unterstützt, indem Sie den Parameter „-u“ hinzufügen, wenn Sie das Befehlszeilentool „mysql“ verwenden.
Verwenden Sie zum Beispiel den folgenden Befehl, um den Benutzernamen „root“ und das Passwort „password“ anzugeben:
mysql -u root -ppassword
Methode 2: Verwenden Sie den folgenden Befehl, um den aktuellen MySQL-Standardzeichensatz anzuzeigen:
mysql> show variables like '%character%';
Dieser Befehl wird angezeigt die aktuellen Zeichensatzeinstellungen. Darunter sind die Werte der drei Parameter „character_set_client“, „character_set_connection“ und „character_set_results“ alle „latin1“.
Um das chinesische verstümmelte Problem in der Befehlszeilenschnittstelle zu lösen, müssen Sie die Werte dieser drei Parameter in „utf8“ ändern. Der Zweck kann durch den folgenden Befehl erreicht werden:
mysql> set character_set_client=utf8; mysql> set character_set_connection=utf8; mysql> set character_set_results=utf8;
Methode 3: Ändern Sie die MySQL-Konfigurationsdatei „my.cnf“.
Suchen Sie in der MySQL-Konfigurationsdatei die folgenden drei Codezeilen:
character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
Entfernen Sie die Kommentare dieser drei Codezeilen und ändern Sie den Wert in „utf8“, wie unten gezeigt:
character-set-client-handshake = FALSE character-set-server = utf8 collation-server = utf8_general_ci
Speicherung chinesischer Zeichen in der MySQL-Datenbank und Abfrageprobleme
Zusätzlich zu dem verstümmelten Chinesisch-Problem in der Befehlszeilenschnittstelle kann es auch in der MySQL-Datenbank selbst zu Problemen bei der Speicherung chinesischer Zeichen und bei Abfragen kommen.
Wenn wir beispielsweise Daten mit chinesischen Schriftzeichen in die MySQL-Datenbank einfügen, kann der folgende Fehler auftreten:
Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1
Dies liegt daran, dass der Standardzeichensatz von MySQL „latin1“ und nicht „utf8“ ist. Wenn Sie das Erstellen von Tabellen und das Speichern von Daten auf Chinesisch unterstützen möchten, müssen Sie den Zeichensatz der Tabellenstruktur auf „utf8“ setzen.
Im Folgenden wird beschrieben, wie das Problem der Speicherung und Abfrage chinesischer Zeichen in der MySQL-Datenbank gelöst werden kann.
Methode 1: Lösen Sie das Problem, indem Sie beim Erstellen der Tabelle den Zeichensatz „utf8“ angeben.
Verwenden Sie beispielsweise den folgenden Befehl, um eine Tabelle mit dem Namen „Person“ zu erstellen und den Zeichensatz des Felds „Name“ in der Tabelle auf „utf8“ festzulegen:
CREATE TABLE person ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (id) ) DEFAULT CHARSET=utf8;
Methode 2: Legen Sie die Standardzeichen in der MySQL-Konfiguration fest file Auf „utf8“ setzen, sodass alle Tabellen standardmäßig diesen Zeichensatz verwenden.
Suchen Sie in der MySQL-Konfigurationsdatei die folgenden zwei Codezeilen:
character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci
Entfernen Sie die Kommentare dieser beiden Codezeilen und ändern Sie den Wert in „utf8“, wie unten gezeigt:
character-set-server=utf8 collation-server=utf8_general_ci
Für vorhandene Tabellen können Sie pass Der folgende Befehl ändert den Zeichensatz der Tabellenstruktur:
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Fazit
Es liegt ein Problem mit dem chinesischen Zeichensatz vor, sei es in der Befehlszeilenschnittstelle oder in der MySQL-Datenbank. Wenn Sie auf ein solches Problem stoßen, lösen Sie es bitte gemäß den in diesem Artikel beschriebenen Methoden. Durch Anpassen des Zeichensatzes können Sie chinesische Daten problemlos abfragen und speichern und verschiedene Probleme vermeiden, die bei der Verarbeitung chinesischer Zeichen auftreten.
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn MySQL kein Chinesisch verwenden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!