Heim  >  Artikel  >  Datenbank  >  Was sind die Unterschiede zwischen verschiedenen Codierungsformaten in MySQL?

Was sind die Unterschiede zwischen verschiedenen Codierungsformaten in MySQL?

(*-*)浩
(*-*)浩Original
2019-05-08 10:39:254485Durchsuche

Der Unterschied zwischen verschiedenen Codierungsformaten in MySQL ist: Bei der ASCII-Codierung wird die Seriennummer des Zeichens im codierten Zeichensatz direkt als Zeichen im Computer gespeichert. Dies ist eine Erweiterung der ASCII-Codierung - 8-Kodierung ist eine Zeichenkodierung variabler Länge für Unicode.

Was sind die Unterschiede zwischen verschiedenen Codierungsformaten in MySQL?

In diesem Artikel werden einige Codierungen von MySQL erläutert und vorgestellt, aber dies sind nicht alle Zeichensatzcodierungen.

Empfohlener Kurs: MySQL-Video-Tutorial

1. Einführung in Zeichensätze

Zeichen ist eine Vielzahl von Texten und allgemeiner Begriff für Symbole, einschließlich der Zeichen verschiedener Länder, Satzzeichen, grafischer Symbole, Zahlen usw.

Der Zeichensatz ist eine Sammlung mehrerer Zeichen. Es gibt viele Arten von Zeichensätzen. Jeder Zeichensatz enthält eine unterschiedliche Anzahl von Zeichensatznamen: ASCII-Zeichensatz, GB2312-Zeichensatz. GB18030-Zeichensatz, Unicode-Zeichensatz usw. Damit ein Computer Text in verschiedenen Zeichensätzen genau verarbeiten kann, ist eine Zeichenkodierung erforderlich, damit der Computer verschiedene Texte erkennen und speichern kann.

Bei der Zeichenkodierung (Zeichenkodierung) wird ein bestimmtes Zeichen im Zeichensatz in ein Zeichen im angegebenen Zeichensatz kodiert, damit der Text im Computer gespeichert und über das Kommunikationsnetzwerk übertragen werden kann. Zu den gängigen Beispielen gehört die Codierung des lateinischen Alphabets in ASCII, das Buchstaben, Zahlen und andere Symbole nummeriert und in einem 7-Bit-Binärsystem darstellt.
Die Zeichenreihenfolge (Sortierung) bezieht sich auf die Vergleichsregeln zwischen Zeichen im gleichen Zeichensatz. Erst nachdem wir die Zeichenreihenfolge bestimmt haben, können wir definieren, was äquivalente Zeichen in einem Zeichensatz sind und welche Größenbeziehung zwischen den Zeichen besteht. Ein Zeichen kann mehrere Zeichenfolgen enthalten. Die Benennungsregeln für die MySQL-Zeichenreihenfolge lauten: Beginnen Sie mit dem Zeichensatznamen, der der Zeichenreihenfolge entspricht, in der Mitte steht der Ländername (oder in der Mitte der allgemeine Name) und enden Sie mit ci, cs oder bin. Die mit ci endende Zeichenfolge gibt an, dass die Groß-/Kleinschreibung nicht beachtet werden soll, die mit cs endende Zeichenfolge gibt an, dass die Groß-/Kleinschreibung beachtet werden soll, und die mit bin endende Zeichenfolge gibt an, dass ein Vergleich auf Basis binär codierter Werte erfolgt.

2. ASCII-Kodierung

ASCII ist sowohl ein kodierter Zeichensatz als auch eine Zeichenkodierung, die die Seriennummer des Zeichens im kodierten Zeichensatz direkt speichert Zeichen im Computer.
Zum Beispiel: In ASCII steht das Zeichen A an 65. Stelle in der Tabelle, die Seriennummer ist 65 und der Wert von A nach der Codierung ist 0100 0001, was dem binären Konvertierungsergebnis von 65 in Dezimalzahl entspricht.

3. Latin1-Zeichensatz

Latin1-Zeichensatz wird basierend auf dem ASCII-Zeichensatz erweitert. Er verwendet immer noch ein Byte zur Darstellung von Zeichen, ermöglicht jedoch höherwertige, erweitert Gibt den Darstellungsbereich des Zeichensatzes an.

4. UTF-8-Kodierung

UTF-8 (8-Bit-Unicode-Transformationsformat) ist eine Zeichenkodierung variabler Länge für Unicode, auch bekannt als Universalcode . Erstellt von Ken Thompson im Jahr 1992. Es ist jetzt als RFC 3629 standardisiert. UTF-8 kodiert Unicode-Zeichen mit 1 bis 6 Bytes.
UTF-8 ist eine Byte-Kodierungsmethode mit variabler Länge. Wenn bei der UTF-8-Codierung eines bestimmten Zeichens nur ein Byte vorhanden ist, ist das höchste Binärbit 0. Wenn es sich um mehrere Bytes handelt, beginnt das erste Byte beim höchsten Bit und die Anzahl der aufeinanderfolgenden Binärbits beträgt 1. Bestimmt die Anzahl der zu kodierenden Ziffern und die verbleibenden Bytes beginnen mit 10. UTF-8 kann bis zu 6 Byte verwendet werden. Wie in der Tabelle gezeigt:
1 Byte 0xxxxxx
2 Byte 110xxxxxx 10xxxxxx
3 Byte 1110xxxx 10xxxxxx 10xxxxxx
4 Byte 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5 Byte 111110xx 10xxxxxx. 10 xxxxxx 10xxxxxx 1 0xxxxxx
6 Bytes 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Daher beträgt die tatsächliche Anzahl von Bits, die zur Darstellung der Zeichenkodierung in UTF-8 verwendet werden können, bis zu 31 Bits, was dem Bit entspricht, das in der obigen Tabelle durch x dargestellt wird. Mit Ausnahme der Steuerbits (10 am Anfang jedes Bytes usw.) entsprechen die durch x dargestellten Bits eins zu eins der UNICODE-Codierung und die Bitreihenfolge ist dieselbe.
Bei der tatsächlichen Konvertierung von UNICODE in die UTF-8-Kodierung sollten Sie zunächst die höherwertigen Nullen entfernen und dann die Mindestanzahl der erforderlichen UTF-8-Kodierungsziffern anhand der verbleibenden Kodierungsziffern ermitteln. Daher können Zeichen im grundlegenden ASCII-Zeichensatz (UNICODE kompatibel mit ASCII) durch nur ein Byte der UTF-8-Kodierung (7 Binärbits) dargestellt werden.

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen verschiedenen Codierungsformaten in MySQL?. 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