Szukaj…


Uwagi

Punkt kodu Unicode, który programiści często myślą o jednym znaku, często odpowiada temu, co użytkownik uważa za jeden znak. Czasami jednak „znak” składa się z wielu punktów kodowych, jak pokazują powyższe przykłady.

Oznacza to, że operacje takie jak przecinanie łańcucha lub uzyskiwanie znaku o danym indeksie mogą nie działać zgodnie z oczekiwaniami. Na przykład 4 th postaci napisu "Café" jest 'e' (bez akcentu). Podobnie przycięcie łańcucha do długości 4 usunie akcent.

Terminem technicznym dla takiej grupy punktów kodowych jest klaster grafemiczny . Zobacz UAX # 29: Segmentacja tekstu Unicode

Znaki diakrytyczne

Litera ze znakiem diakrytycznym może być reprezentowana przez literę oraz literę modyfikującą. Zwykle myślisz o jako jednym znaku, ale tak naprawdę to 2 punkty kodowe:

  • U+0065 - LATIN MAŁY LIST E
  • U+0301 - ŁĄCZĄCY AKCES OSTRE

Podobnie = c + ¸ i = a + ˚

połączone formy

Aby skomplikować sprawę, często istnieje także punkt kodowy dla złożonej formy:

"Café" = 'C' + 'a' + 'f' + 'e' + '´'
"Café" = 'C' + 'a' + 'f' + 'é'

Chociaż te ciągi wyglądają tak samo, nie są równe i nawet nie mają tej samej długości (odpowiednio 5 i 4).

Tekst Zalgo

Jest to coś, co nazywa się Zalgo Text, który popycha to do końca. Oto pierwsza grupa grafemowa z przykładu. Składa się z 15 punktów kodowych: litery łacińskiej H i 14 znaków łączących.

H̡̫̤̤̣͉̤ͭ̓̓̇͗̎̀

Chociaż nie pojawia się to w zwykłym tekście, pokazuje, że „znak” naprawdę może składać się z dowolnej liczby punktów kodowych

Emoji i flagi

Wiele emoji składa się z więcej niż jednego punktu kodowego.

  • 🇯🇵: Flaga jest zdefiniowana jako para „liter oznaczeń symboli regionalnych” (🇯 + 🇵)
  • 🙋🏿: Po niektórych emotikonach może następować modyfikator odcienia skóry: 🙋 + 🏿
  • 😀︎ lub 😀️: Windows 10 pozwala określić, czy emoji ma być kolorowe, czy czarno-białe, U+FE0E selektor odmian ( U+FE0E lub U+FE0F )
  • 👨‍👩‍👧‍👦: rodzina. Kodowane przez dołączenie emoji dla chłopca, dziewczynki, kobiety i mężczyzny (👦, 👧, 👩, 👨) wraz z łącznikami o zerowej szerokości ( U+200D ). Na platformach, które go obsługują, jest to renderowane jako emoji rodziny z dwójką dzieci.


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow