unicode
Zeichen können aus mehreren Codepunkten bestehen
Suche…
Bemerkungen
Ein Unicode-Codepunkt, den Programmierer häufig von einem Zeichen halten, entspricht häufig dem, was der Benutzer für ein Zeichen hält. Manchmal besteht ein „Zeichen“ jedoch aus mehreren Codepunkten, wie die obigen Beispiele zeigen.
Dies bedeutet, dass Operationen wie das Schneiden einer Zeichenkette oder das Abrufen eines Zeichens an einem bestimmten Index möglicherweise nicht wie erwartet funktionieren. Zum Beispiel ist das vierte Zeichen der Zeichenfolge "Café"
'e'
(ohne Akzent). Wenn Sie den String auf Länge 4 ausschneiden, wird der Akzent entfernt.
Der Fachbegriff für eine solche Gruppe von Codepunkten ist ein Graphem-Cluster . Siehe UAX Nr. 29: Unicode-Textsegmentierung
Diakritiker
Ein Brief mit einem Diakriten kann mit dem Buchstaben und einem kombinierenden Zusatzbuchstaben dargestellt werden. Normalerweise denken Sie an é
als ein Zeichen, aber es sind wirklich zwei Codepunkte:
-
U+0065
- LATEINISCHER KLEINER BUCHSTABE E -
U+0301
- KOMBINIERENDER AKUTE-AKZENT
Ebenso ç
= c
+ ¸
und å
= a
+ ˚
kombinierte Formen
Zur Vereinfachung gibt es häufig auch einen Code für das zusammengesetzte Formular:
"Café" = 'C' + 'a' + 'f' + 'e' + '´'
"Café" = 'C' + 'a' + 'f' + 'é'
Obwohl diese Zeichenfolgen gleich aussehen, sind sie nicht gleich und sie haben nicht einmal die gleiche Länge (5 bzw. 4).
Zalgo Text
Es gibt dieses Ding namens Zalgo Text, das dies extrem macht. Hier ist der erste Graphem-Cluster des Beispiels. Es besteht aus 15 Codepunkten: dem lateinischen Buchstaben H
und 14 Kombinationsmarken.
H̡̫̤̤̣͉̤ͭ̓̓̇͗̎̀
Obwohl dies im normalen Text nicht angezeigt wird, zeigt es, dass ein „Zeichen“ tatsächlich aus einer beliebigen Anzahl von Codepunkten bestehen kann
Emoji und Fahnen
Viele Emoji bestehen aus mehr als einem Codepunkt.
- 🇯🇵: Eine Flagge ist definiert als Paar "Regionalzeichen" (🇯 + 🇵).
- Some: Auf einige Emojis kann ein Modifikator für die Hautfarbe folgen: 🙋 + 🏿
- 😀︎ oder 😀️: In Windows 10 können Sie festlegen, ob ein Emoji farbig oder schwarz / weiß ist, indem Sie eine Variationsauswahl anhängen (
U+FE0E
oderU+FE0F
) - 👨👩👧👦: eine Familie. Kodiert, indem Sie sich beim Emoji für Jungen, Mädchen, Frauen und Männer (👦, 👧, 👩, 👨) zusammen mit Zero-Width-Schreiner (
U+200D
200D) anmelden. Auf Plattformen, die dies unterstützen, wird dies als Emoji einer Familie mit zwei Kindern dargestellt.