Übersicht über den Zeichensatz
Der Zeichensatz ist ein Satz von Symbolen und Codierungsregeln. Ob in der Oracle-Datenbank oder in der MySQL-Datenbank, es gibt ein Problem bei der Auswahl des Zeichensatzes und wenn der Zeichensatz während der Datenbank nicht richtig ausgewählt wird In der Erstellungsphase müssen Sie möglicherweise den Zeichensatz später ändern. Das Ändern des Zeichensatzes ist ein relativ kostspieliger Vorgang und birgt gewisse Risiken. Daher empfehlen wir Ihnen, den richtigen Zeichensatz entsprechend Ihren Anforderungen auszuwählen zu Beginn der Anwendung, um spätere unnötige Fehler zu vermeiden.
4.2 Einführung in die von MySQL unterstützten Zeichensätze
Der MySQL-Server kann mehrere Zeichensätze auf demselben Server, in derselben Datenbank oder auf demselben Server unterstützen (Sie können den Befehl show Character Set verwenden, um alle von MySQL unterstützten Zeichensätze anzuzeigen). Selbst in derselben Tabelle können verschiedene Felder angegeben werden, um unterschiedliche Zeichensätze zu verwenden. Im Vergleich zu anderen Datenbankverwaltungssystemen wie Oracle, die nur denselben Zeichensatz in derselben Datenbank verwenden können, bietet MySQL offensichtlich eine größere Flexibilität.
Der Zeichensatz von MySQL umfasst zwei Konzepte: Zeichensatz (CHARACTER) und Korrekturleseregeln (COLLATION). Der Zeichensatz wird verwendet, um die Art und Weise zu definieren, wie MySQL Zeichenfolgen speichert, und die Sortierregeln definieren die Art und Weise, wie Zeichenfolgen verglichen werden. Zwischen Zeichensätzen und Sortierregeln besteht eine Eins-zu-viele-Beziehung. MySQL unterstützt mehr als 70 Sortierregeln in mehr als 30 Zeichensätzen.
Jeder Zeichensatz entspricht mindestens einer Sortierregel. Sie können den Befehl SHOW COLLATION LIKE 'utf8%' verwenden, um die Sortierregeln des relevanten Zeichensatzes anzuzeigen.
4.3 Kurze Einführung in Unicode
Unicode ist eine Kodierungsspezifikation. Hier beschreiben wir kurz die Geschichte der Unicode-Codierung.
Beginnen wir mit dem ASCII-Code, der jedoch nur maximal 256 Zeichen darstellen kann. Für komplexe Texte wie Chinesisch und Arabisch sind es 256 Zeichen offensichtlich nicht genug. Daher haben verschiedene Länder oder Organisationen nacheinander Standards formuliert, die ihrer eigenen Sprache und ihren eigenen Zeichen entsprechen, wie z. B. gb2312, big5 usw. Allerdings hat dieser Ansatz, eigene Standards festzulegen, offensichtlich viele Nachteile, weshalb die Unicode-Kodierungsspezifikation ins Leben gerufen wurde.
Unicode ist ebenfalls eine Zeichenkodierungsmethode, wurde jedoch von einer internationalen Organisation entwickelt und kann Kodierungsschemata für alle Sprachen auf der ganzen Welt unterstützen. Der wissenschaftliche Name von Unicode ist „Universal Multiple-Octet Coded Character Set“, kurz UCS. UCS kann als Abkürzung für „Unicode Character Set“ angesehen werden.
Unicode verfügt über zwei Standards: UCS-2 und UCS-4. Ersteres verwendet 2 Bytes zur Darstellung eines Zeichens und letzteres verwendet 4 Wörter zur Darstellung eines Zeichens. Am Beispiel des derzeit häufig verwendeten UCS-2 beträgt die Anzahl der darstellbaren Zeichen 2 ^ 16 = 65535, was grundsätzlich alle europäischen und amerikanischen Zeichen sowie die meisten asiatischen Zeichen aufnehmen kann.
4.4 So wählen Sie einen geeigneten Zeichensatz aus
Wir empfehlen, dass Sie versuchen, einen kleinen Zeichensatz zu verwenden, solange dieser die Anwendung vollständig erfüllt. Denn ein kleinerer Zeichensatz bedeutet, dass Platz gespart und die Anzahl der vom Netzwerk übertragenen Bytes reduziert werden kann. Gleichzeitig verbessert der kleinere Speicherplatz indirekt die Systemleistung
.
Es gibt viele Zeichensätze, mit denen chinesische Zeichen gespeichert werden können, z. B. utf8, gb2312, gbk, latin1 usw., aber die am häufigsten verwendeten sind gb2312 und gbk. Da die Schriftartenbibliothek gb2312 kleiner ist als die Schriftartenbibliothek gbk, können einige seltene Zeichen (z. B. 洺) nicht gespeichert werden. Daher müssen Sie bei der Auswahl eines Zeichensatzes die Wahrscheinlichkeit und Auswirkung dieser Remote-Zeichen in der Anwendung abwägen Sie können keine positive Antwort geben, es ist am besten, gbk zu wählen.
4.5 MySQL-Zeichensatzeinstellungen
Der Zeichensatz und die Sortierregeln von MySQL verfügen über 4 Ebenen von Standardeinstellungen: Serverebene, Datenbankebene, Tabellenebene und Feldebene. Sie werden an verschiedenen Orten aufgestellt und haben unterschiedliche Funktionen.
Der Zeichensatz und die Sortierung des Servers werden festgelegt, wenn der MySQL-Dienst gestartet wird.
Kann in my.cnf eingestellt werden:
[mysqld]
default-character-set=utf8
oder in den Startoptionen angegeben werden:
mysqld --default-character-set=utf8
Oder beim Kompilieren angeben:
./configure --with-charset=utf8
Wenn der Server-Zeichensatz nicht speziell angegeben ist, wird standardmäßig latin1 als Server-Zeichensatz verwendet. Die oben genannten drei Einstellungen geben nur den Zeichensatz und nicht die Sortierregeln an. Auf diese Weise werden die Standard-Sortierungsregeln des Zeichensatzes verwendet um gleichzeitig den Zeichensatz festzulegen.
Sie können die Show-Variablen wie den Befehl „character_set_server“ verwenden, um den Zeichensatz und die Sortierregeln des aktuellen Servers abzufragen.
Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!