Dieser Artikel stellt hauptsächlich die relevanten Informationen zur Datenbank MySQL vor und fasst die Lösungen für chinesische verstümmelte Zeichen zusammen, sodass wir häufig auf verstümmelte Zeichen in der Datenbank stoßen brauche es kann Als Referenz:
MySQL Chinesisch verstümmelte Lösung
Vorwort:
MySQL ist eine sehr häufig verwendete Datendatenbank in unseren Projekten. Da wir jedoch chinesische Schriftzeichen in der Datenbank speichern müssen, stoßen wir häufig auf verstümmelte Datenbankzeichen. Lassen Sie uns vorstellen, wie Sie das Problem der verstümmelten chinesischen Zeichen in der Datenbank vollständig lösen können.
1. Chinesischer verstümmelter Code
1.1. Chinesischer verstümmelter Code
create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 添加数据 select * from user;
insert into user value("哈哈");
Chinesische Zeichen können nicht eingefügt werden:
1.2. Überprüfen Sie die Zeichenkodierung der Tabelle
mysql> show create table user \G; *************************** 1. row *************************** Table: user Create Table: CREATE TABLE `user` ( `name` varchar(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)
Wir können sehen, dass der Standard-Zeichensatz der Tabelle latin1 ist Also erstellen wir die Tabelle. Sie müssen den Zeichensatz der Tabelle angeben:
Auf diese Weise können Sie unter
Linux auf die Tabelle zugreifen
und Sie können die Tabelle einfügen und darauf zugreifen.
create table user(name varchar(11)) default charset=utf8;
1.3. Datenbank- und Betriebssystemcodierung
Obwohl Chinesisch auf der Serverseite normal angezeigt werden kann, können auf der Clientseite verstümmelte Zeichen angezeigt werden. Weil unser Server UTF8 ist.
Außerdem gibt es Probleme mit der Kodierung der Datenbank.
Hier können wir sehen, dass die Zeichensätze von Character_sert_database und Character_set_server beide latin1 sind. Dann sind in
MySQL-Datenbankdie Zeichensätze von Server, Datenbank und Die Tabelle ist alle. Der Standardwert ist latin1. Schauen wir uns an, wie die MySQL-Verstümmelungssituation gelöst werden kann.
2. MySQL-Einstellungen Variablenbereich
2.1, SitzungUmfang
Datenbankkodierung anzeigen :show variables like '%char%';
set character_set_server=utf8; set character_set_database=utf8; show variables like '%char%';Wir können sehen, dass der Zeichensatz auf utf8 geändert wurde. Hier gibt es jedoch ein Problem: Wenn wir ein Befehlsfenster erneut öffnen und die Datenkodierung überprüfen, wird der folgende Bildschirm angezeigt:
2.2, globaler Bereich
Der Bereich der MySQL-Einstellungsvariablen ist standardmäßig der Sitzungsbereich. Wenn Sie den Zeichensatz mehrerer Sitzungen festlegen, müssen Sie den globalen Bereich festlegen: [global|session]-Variablen festlegen...
Wenn wirMySQL-Zeichen sitzungsübergreifend. Mit
sehen alle utf8. Wenn Sie denken, dass alles in Ordnung ist, liegen Sie völlig falsch.
set global character_set_database=utf8; set global character_set_server=utf8; show variables like '%char%';2.3. Legen Sie den globalen Datenbereich fest
service mysqld restart mysql -uroot -pyourpassword show variables like '%char%';
Ändern Sie MySQL Konfigurationsdatei
/etc/my.cnf. Bitte achten Sie auf den Speicherort dieser Parameterkonfigurationen, da sonst der MySQL-Dienst möglicherweise nicht gestartet wird:[mysqld] character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8
OK. Wenn Sie nun den MySQL-Dienst neu starten, werden Sie auch feststellen, dass sein Zeichensatz utf8 ist.
Und wir müssen die Zeichenkodierung nicht angeben, wenn wir die Tabelle erstellen , der Standardwert ist utf8;
drop database test; create database test; use test; create table user(name varchar(11)); show create table user \G;3. ZusammenfassungIch verstehe dass viele Antworten im Internet direkt sind. Das Festlegen der Zeichenkodierung von MySQL auf Sitzungsebene ist eher eine vorübergehende Lösung als eine dauerhafte Lösung. Wir müssen dieses Problem noch von der Quelle her lösen. Das heißt, die Standardkonfigurationsdatei von MySQL zu ändern und ihren Zeichensatz in UTF8 zu ändern, das chinesische Zeichen verwenden kann.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!