Heim > Web-Frontend > js-Tutorial > Was jeder JavaScript-Entwickler über Unicode wissen sollte

Was jeder JavaScript-Entwickler über Unicode wissen sollte

高洛峰
Freigeben: 2016-10-15 11:52:36
Original
1135 Leute haben es durchsucht

Inhalt:

1 Die Idee hinter Unicode

2 Grundkonzepte von Unicode

2.1 Zeichen und Codepunkte

2.2 Unicode-Ebene

2.3 Codeelemente

2.4 Proxy-Paare

2.5 Kombinieren von Zeichen

3 Unicode in JavaScript

3.1 Escape-Sequenzen

3.2 String-Vergleich

3.3 String-Länge

3.4 Zeichenpositionierung

3.5 Reguläre Übereinstimmung

4 Fazit

1. Unicode Die Idee hinter

Stellen Sie zunächst die grundlegendste Frage: Wie haben Sie diesen Artikel gelesen und verstanden? Die Antwort ist einfach, denn Sie verstehen die Bedeutung dieser Wörter und die Wörter, aus denen sie bestehen.

Wie verstehen Sie dann die Bedeutung dieser Wörter? Auch die Antwort ist einfach, denn Sie (der Leser) und ich (der Autor) haben das gleiche Verständnis für den Zusammenhang zwischen diesen Grafiken (auf dem Bildschirm dargestellt) und den chinesischen Schriftzeichen (also der Bedeutung).

Für Computer ist dieses Prinzip ähnlich, mit einem Unterschied: Der Computer versteht nicht die Bedeutung dieser Wörter (Buchstaben), sondern versteht sie nur als eine bestimmte Folge von Bits.

Stellen wir uns ein Szenario vor: Computerbenutzer1 sendet eine Nachricht „Hallo“ an Computerbenutzer2.

Der Computer weiß nicht, was diese Buchstaben bedeuten. Computer Benutzer1 wandelt also die Nachricht „Hallo“ in eine Zahlenfolge 0x68 0x65 0x6C 0x6C 0x6F um, wobei jeder Buchstabe einer Zahl entspricht: h entspricht 0x68, e entspricht 0x65 und so weiter.

Senden Sie diese Nummern dann an den Computer Benutzer2.

Nachdem Computer Benutzer2 die digitale Sequenz 0x68 0x65 0x6C 0x6C 0x6F empfängt, verwendet er denselben Satz von Buchstaben und Zahlen, um den Nachrichteninhalt zu rekonstruieren, und „Hallo“ kann korrekt angezeigt werden.

Die Vereinbarung zwischen verschiedenen Computern über die Entsprechung zwischen Buchstaben und Zahlen ist das Ergebnis der Unicode-Standardisierung.

Laut Unicode ist h ein abstraktes Zeichen mit dem Namen LATEINISCHER KLEINBUCHSTABE H. Dieses abstrakte Zeichen entspricht der Zahl 0x68, einem Codepunkt mit der Bezeichnung U 0068. Diese Konzepte werden im nächsten Kapitel erläutert.

Die Rolle von Unicode besteht darin, eine abstrakte Zeichenliste (Zeichensatz) bereitzustellen und jedem Zeichen einen eindeutigen Identifikationscodepunkt (codierten Zeichensatz) zuzuweisen.

2. Grundkonzepte von Unicode

www.unicode.org erwähnte Website:

Unicode weist jedem Zeichen eine proprietäre Nummer zu

Keine Plattform

Programmunabhängig

Sprachunabhängig

Unicode ist ein weltweiter Zeichensatz, der die Zeichensätze der meisten Schriftsysteme auf der ganzen Welt definiert und jedem Zeichen ein eindeutiges Zeichen zuweist Nummer (Codepunkt).

Unicode umfasst die meisten modernen Sprachen, Satzzeichen, diakritische Zeichen (diakritische Zeichen), mathematische Symbole, technische Symbole, Pfeile und Emoticons usw.

Die erste Version von Unicode 1.0 wurde im Oktober 1991 veröffentlicht und enthielt 7161 Zeichen. Die neueste Version 9.0 (veröffentlicht im Juni 2016) bietet eine Kodierung von 128172 Zeichen.

Die Vielseitigkeit und Offenheit von Unicode löst ein in der Vergangenheit bestehendes Problem: Anbieter implementieren unterschiedliche Zeichensätze und Kodierungsregeln, was schwer zu bewältigen ist.

Eine Anwendung zu erstellen, die alle Zeichensätze und Kodierungsregeln unterstützt, ist sehr komplex. Ganz zu schweigen davon, dass die von Ihnen gewählte Kodierung möglicherweise nicht alle benötigten Sprachen unterstützt.

Wenn Sie Unicode für schwierig halten, denken Sie einfach daran, wie viel schwieriger es wäre, ohne Unicode zu programmieren.

Ich erinnere mich noch an die Zeit, als ich zufällig den erforderlichen Zeichensatz und die Kodierungsregeln auswählte, um den Inhalt einer Datei zu lesen. Es hängt alles vom Charakter ab!

2.1 Zeichen und Codepunkte

Abstrakte Zeichen (d. h. Textzeichen) sind Informationseinheiten, die zum Organisieren, Verwalten oder Darstellen von Textdaten verwendet werden.

Zeichen in Unicode sind ein abstraktes Konzept. Jedes abstrakte Zeichen hat einen entsprechenden Namen, z. B. den LATEINISCHEN KLEINBUCHSTABEN A. Die grafische Darstellung (Glyphe) dieses abstrakten Zeichens ist a. (Anmerkung des Übersetzers: Glyphe ist ein Bildzeichen)

Codepunkt bezieht sich auf die einem abstrakten Zeichen zugewiesene Nummer

Codepunkt wird in der Form U ausgedrückt , U steht für Unicode Präfix und ist eine Hexadezimalzahl. Beispielsweise sind U 0041 und U 2603 beide Codepunkte.

Der Wertebereich der Codepunkte reicht von U 0000 bis U 10FFFF.

Denken Sie daran, dass ein Codepunkt eine einfache Zahl ist. Bedenken Sie dies, wenn Sie über Unicode nachdenken.

Codepunkte sind wie Indizes von Array-Elementen.

Die Magie von Unicode besteht darin, Codepunkte mit abstrakten Zeichen zu verknüpfen. Beispielsweise heißt das abstrakte Zeichen, das U 0041 entspricht, LATEINISCHER GROSSBUCHSTABE A (dargestellt als A) und das abstrakte Zeichen, das U 2603 entspricht, heißt SCHNEEMANN (dargestellt als ☃)

Beachten Sie, dass nicht alle Codepunkte haben entsprechende abstrakte Zeichen. Es stehen 114112 Codepunkte zur Verfügung, es werden jedoch nur 128237 abstrakte Zeichen zugewiesen.

2.2 Unicode-Ebene

Die Ebene bezieht sich auf das Intervall von U n0000 bis U nFFFF, also 65536 (1000016) aufeinanderfolgende Unicode-Codepunkte. Der Wertebereich von n liegt zwischen 016 und 1016.

Diese Ebenen unterteilen Unicode-Codepunkte in 17 gleich große Sätze:

Ebene 0 enthält Codepunkte von U 0000 bis U FFFF

Ebene 1 enthält Codepunkte von U-Code Punkte von **1**0000 bis U **1**FFFF

...

Ebene 16 enthält Codepunkte von U **10**0000 bis U **10* * Codepunkte für FFFF

Was jeder JavaScript-Entwickler über Unicode wissen sollte

Basic Multilingual Plane

Plane 0 ist etwas Besonderes und wird Basic Multilingual Plane oder kurz BMP genannt. Es enthält Zeichen für die meisten modernen Sprachen (Grundkenntnisse Latein, Kyrillisch, Griechisch usw.) und eine große Anzahl von Symbolen.

Wie oben erwähnt, reicht der Codepunktwertbereich der grundlegenden mehrsprachigen Ebene von U 0000 bis U FFFF und kann bis zu 4 Hexadezimalziffern haben.

Die meiste Zeit beschäftigen sich Entwickler mit Charakteren in BMP. Es enthält in den meisten Fällen die erforderlichen Zeichen.

Einige Zeichen in BMP:

e entspricht Codepunkt U 0065 Abstrakter Zeichenname: LATEINISCHER KLEINBUCHSTABE E

|entspricht Codepunkt U 007C Abstrakter Zeichenname: VERTIKAL BAR

■Entsprechender Codepunkt U 25A0 Abstrakter Charaktername: BLACK SQUARE

☂Entsprechender Codepunkt U 2602 Abstrakter Charaktername: UMBRELLA

Starlight Plane

BMP Die nächsten 16 Ebenen (Ebene 1, Ebene 2, ..., Ebene 16) werden Astralebenen oder Hilfsebenen genannt.

Die Codepunkte der Astralebene werden Astralcodepunkte genannt. Diese Codepunkte reichen von U 10000 bis U 10FFFF.

Starlight-Codepunkte können 5 oder 6 hexadezimale Ziffern haben: U ddddd oder U dddddd.

Werfen wir einen Blick auf einige Charaktere auf der Astralebene:

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage