Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

黄舟
黄舟Original
2017-03-16 14:18:111338Durchsuche

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;

Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)


insert into user value("哈哈");

Chinesische Zeichen können nicht eingefügt werden:

Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

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. Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

Außerdem gibt es Probleme mit der Kodierung der Datenbank.

Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

Hier können wir sehen, dass die Zeichensätze von Character_sert_database und Character_set_server beide latin1 sind. Dann sind in

MySQL-Datenbank

die 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. Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

2. MySQL-Einstellungen Variablenbereich

2.1, SitzungUmfang

Datenbankkodierung anzeigen :


Zeichenkodierung ändern:
show variables like '%char%';

Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)


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:

Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

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...Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

Wenn wir

MySQL-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

Wenn unsere Datenbank neu startet, werden Sie feststellen, dass sich der Wert zum Festlegen des globalen Datenbereichs wieder in „latin1“ geändert hat.


Haben Sie keine Angst, ich bringe Ihnen den ultimativen Trick bei:
service mysqld restart
mysql -uroot -pyourpassword
show variables like '%char%';

Ändern Sie MySQL Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)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.

Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

Und wir müssen die Zeichenkodierung nicht angeben, wenn wir die Tabelle erstellen , der Standardwert ist utf8;

Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)


drop database test;
create database test;
use test;
create table user(name varchar(11));
show create table user \G;
3. Zusammenfassung

Detaillierte Erläuterung der Zusammenfassung der verstümmelten chinesischen MySQL-Datenbanklösung (Bilder und Texte)

Ich 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn