Heim  >  Artikel  >  Web-Frontend  >  Was ist Unicode, was ist UTF-8

Was ist Unicode, was ist UTF-8

WBOY
WBOYOriginal
2016-05-16 12:10:312627Durchsuche

Ich war beim Codieren nie sehr anspruchsvoll, daher weiß ich nicht viel über Unicode und UTF-8. Kürzlich habe ich versehentlich einen Artikel über UTF-8 gelesen und fand die Erklärung sehr kompliziert, also dachte ich darüber nach, einen einfacheren und leichter verständlichen Artikel zu schreiben.

Erläutern wir zunächst einige der heute häufig verwendeten Kodierungsschemata:

1 In China ist GBK18030 die am häufigsten verwendete Kodierung Zusätzlich zu GBK und GB2312 ist die Beziehung zwischen diesen Codes wie folgt:

Die früheste chinesische Zeichenkodierung war GB2312, einschließlich 6763 chinesischer Zeichen und 682 anderer Symbole. Die Kodierung wurde 1995 überarbeitet und als GBK1.0 bezeichnet. und insgesamt 21886 Symbole. Später wurde die GBK18030-Kodierung eingeführt, die insgesamt 27.484 chinesische Schriftzeichen sowie Tibetisch, Mongolisch, Uigurisch und andere wichtige Sprachen ethnischer Minderheiten umfasste. Jetzt muss die WINDOWS-Plattform die GBK18030-Kodierung unterstützen.

In der Reihenfolge GBK18030, GBK und GB2312 sind die drei Kodierungen abwärtskompatibel. Das gleiche chinesische Zeichen hat in den drei Kodierungsschemata die gleiche Kodierung.

2. Taiwan, Hongkong und andere Orte verwenden die BIG5-Kodierung

3 Japan: SJIS-Kodierung

Wenn verschiedene Textkodierungen als Dialekte verschiedener Orte beschrieben werden, dann Unicode Es handelt sich um eine Sprache, die von Ländern auf der ganzen Welt gemeinsam entwickelt wurde.

In dieser Sprachumgebung gibt es keine Sprachkodierungskonflikte mehr. Inhalte können in jeder Sprache auf demselben Bildschirm angezeigt werden.

Wie wird Unicode kodiert? Tatsächlich ist es ganz einfach:

besteht darin, den gesamten Text der Welt mit 2 Bytes zu kodieren. Sie fragen sich vielleicht: 2 Bytes können bis zu 65536 Codes darstellen. Reicht das?

Die meisten chinesischen Schriftzeichen in Korea und Japan wurden aus China übertragen und die Schriftarten sind genau gleich. Beispiel: Das Wort „文“ ist in GBK und SJIS dasselbe chinesische Zeichen, aber die Kodierung ist unterschiedlich. Auf diese Weise reichen bei einer einheitlichen Codierung wie dieser 2 Bytes aus, um den größten Teil des Textes in allen Sprachen der Welt unterzubringen.

Der wissenschaftliche Name von Unicode ist „Universal Multiple-Octet Coded Character Set“, auch UCS genannt.
Derzeit wird UCS-2 verwendet, eine 2-Byte-Kodierung, und UCS-4 wurde entwickelt, um zu verhindern, dass 2 Bytes in Zukunft nicht mehr ausreichen. UCS-2 wird auch als Basic Multilingual Plane bezeichnet.
Bei der Konvertierung von UCS-2 in UCS-4 werden einfach 2 Bytes von 0 vorangestellt.
UCS-4 wird hauptsächlich zum Speichern von Hilfsebenen verwendet, beispielsweise der zweiten Hilfsebene in Unicode 4.0
20000-20FFF - 21000-21FFF - 22000-22FFF - 23000-23FFF - 24000-24FFF - 25000-25FFF - 26000-26FFF - 27000-27FFF - 28000-28FFF - 29000-29FFF - 2A000-2AFFF - 2F000-2FFFF
Es wurden insgesamt 16 Hilfsebenen hinzugefügt, wodurch sich die ursprünglichen 65536-Codes auf fast 1 Million Codes erweitern.

Wie kann die Kodierung nun, da sie vereinheitlicht wurde, mit den ursprünglichen Textkodierungen verschiedener Länder kompatibel sein?

Zu diesem Zeitpunkt ist eine Codepage erforderlich.

Was ist Codepage? Codepage ist die Zuordnungstabelle zwischen der Textkodierung jedes Landes und Unicode. Die Zuordnungstabelle zwischen vereinfachtem Chinesisch und Unicode lautet beispielsweise CP936.

Im Folgenden sind einige häufig verwendete Codepages aufgeführt. Ändern Sie einfach die Nummer der oben genannten Adresse entsprechend:

codepage=936 Vereinfachtes Chinesisch GBK
codepage=950 Traditionelles Chinesisch BIG5
codepage = 437 Vereinigte Staaten/Kanada Englisch
codepage=932 Japanisch
codepage=949 Koreanisch
codepage=866 Russisch
codepage=65001 Unicode UFT-8

Der letzte ist 65001 Nach persönlichem Verständnis sollte es sich nur um eine virtuelle Zuordnungstabelle handeln, aber eigentlich handelt es sich nur um einen Algorithmus.

Nehmen Sie eine zufällige Zeile von 936, zum Beispiel:

0x9993 0x6ABD #CJK UNIFIED IDEOGRAPH
Die vorherige Kodierung ist GBK-Kodierung und die folgende ist Unicode.
Anhand dieser Tabelle können Sie problemlos zwischen GBK und Unicode konvertieren.

Nachdem wir Unicode verstanden haben, was ist UTF-8? Und warum erscheint UTF-8?

Konvertieren Sie ASCII in UCS-2, fügen Sie vor der Kodierung einfach eine 0x0 ein. Die Verwendung dieser Codierungen beinhaltet einige Steuerzeichen, wie z. B. oder /, die zu schwerwiegenden Fehlern in UNIX und einigen C-Funktionen führen. Daher steht fest, dass UCS-2 nicht als externe Kodierung für Unicode geeignet ist.

So wurde UTF-8 geboren. Wie wird UTF-8 kodiert? Wie kann das Problem von UCS-2 gelöst werden?

Beispiel:

E4 BD A0  11100100 10111101 10100000
Dies ist die UTF-8-Kodierung des Wortes „you“

4F 60  01001111 0 00
Dies ist „ Die Unicode-Codierung von „you“

wird gemäß den Codierungsregeln von UTF-8 wie folgt zerlegt: xxxx0100 xx111101 xx100000
Fügen Sie die Zahlen außer x zusammen, um die Unicode-Codierung von „you“ zu erhalten ".
Achten Sie auf die ersten drei Einsen von UTF-8, die anzeigen, dass die gesamte UTF-8-Zeichenfolge aus 3 Bytes besteht.
Nach der UTF-8-Kodierung werden sensible Zeichen nicht mehr angezeigt, da das höchste Bit immer 1 ist.

Berikut ialah jadual perhubungan penukaran antara Unicode dan UTF-8:
U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxx 00000000000 -0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-001FFFFF1: 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

Tukar pengekodan Unikod kepada UTF-8 Hanya letakkan strim bait Unicode ke dalam x dan ia akan menjadi UTF-8.


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