Preskoči na sadržaj

Unicode blokovi

Unicode dijeli svoj prostor kodnih točaka u nazivane blokove, svaki kontinuirani raspon rezerviran za jedno pismo ili jednu obitelj simbola. Znati koji blok znaka živi je što pretvara misterij — zašto je ovaj zalijep slomio, zašto ovaj regex ga propušta — u odgovorljivo pitanje.

Imena blokova su identifikatori, a ne opisi: koriste se doslovno u regex-u kao \p{Block=Cyrillic} i u svakoj Unicode datoteci podataka, pa ostaju na engleskom u svakom jeziku. Ono što se prevodi je rečenica pored njih.

Ovo je kuriozna selekcija umjesto svih otprilike 340 blokova — oni koji dolaze kada radite s tekstom. ASCII tablica pokriva prvi blok u punoj detaljnosti; ova stranica započinje gdje ona završava.

Latinica

5

Latinica je rasprostranja preko nekoliko blokova, što je razlog zašto pokušaj udovoljavanja nije nikada sasvim radi.

RasponBlokŠto je u njemuPrimjer
U+0000–U+007FBasic LatinASCII, nepromijenjen: Latinski znakovi, znamenke, interpunkcija, upravljački kodoviA z 0 ?
U+0080–U+00FFLatin-1 SupplementZapadnoeuropski naglasci, plus £ § × ÷ i razmak bez prekidaé ñ ü ×
U+0100–U+017FLatin Extended-ASrednjoeuropski i istočnoeuropski naglasci — č, ł, ő, șč ł ő š
U+0180–U+024FLatin Extended-BDodatna slova za afrička i fonetska pismaƒ ǎ ȳ
U+1E00–U+1EFFLatin Extended AdditionalVijetnamski i ostali višestruko naglašeni latinski znakoviạ ế ṛ

Kombinacijski znakovi i modifikatori

4

Oni se pričvršćuju na znakovi prije njih i nemaju vlastitu širinu.

RasponBlokŠto je u njemuPrimjer
U+0300–U+036FCombining Diacritical MarksNaglasci primijenjeni na prethodnu znakoviDrugi, razloženi način pisanja é. Normalizirajte na NFC da ga sežete.◌́ ◌̈ ◌̌
U+02B0–U+02FFSpacing Modifier LettersSuperscripleta slova i IPA stres i tonske oznakeʰ ˈ ˚
U+FE00–U+FE0FVariation SelectorsNevidljivi selektori koji biraju tekst ili emoji prezentacijuVS16 je ono što pretvara ✔ u emoji. Nevidljivo, ali se računa.
U+FE20–U+FE2FCombining Half MarksPolovine oznaka koja se proteže kroz dva znaka

Ostala pisma

8
RasponBlokŠto je u njemuPrimjer
U+0370–U+03FFGreek and CopticGrčki, i kopzki znakovi koji dijele njegov blokα Ω π
U+0400–U+04FFCyrillicRuski, ukrajinski, srpski, bugarski i srodni abecediд Я ж
U+0590–U+05FFHebrewHebrejska slova, rečitne točke i kantilacijske oznakeא ש
U+0600–U+06FFArabicArapska slova, u njihovim odijeljenima oblikamaا ب ي
U+0900–U+097FDevanagariHindi, sanskrt, Marathi i srodni jeziciक ह
U+0E00–U+0E7FThaiTajlandski suglasnici, samoglasnici i tonske oznakeก ท
U+10A0–U+10FFGeorgianGruzijski Mkhedruliა ბ
U+1F00–U+1FFFGreek ExtendedPolytonica Grčki — naglasci klasičnih tekstovaᾰ ῶ

Interpunkcija i brojevi

5

Izvor većine nevidljivih znakova koji prežive kopiranje zalijepljene.

RasponBlokŠto je u njemuPrimjer
U+2000–U+206FGeneral PunctuationCrtice, zakrivljeni navodnnici, elipsis — i većina nevidljivih razmakaU+200B nulti razmak i U+2060 spojnica žive ovdje.– — “ ” …
U+2070–U+209FSuperscripts and SubscriptsSuperscripleta i subscript znamenke i slova⁰ ⁴ ₂
U+20A0–U+20CFCurrency SymbolsZnakovi valute koje Latin-1 nema mjesta za — €, ₴, ₹, ₺€ ₴ ₺
U+2100–U+214FLetterlike SymbolsSimboli izgrađeni od slova — ™, №, ℃, ℓ™ ℃ №
U+2150–U+218FNumber FormsVulgarne razlomke i rimske brojeve kao jednog znaka⅓ ⅕ Ⅷ

Simboli i crtanje

9
RasponBlokŠto je u njemuPrimjer
U+2190–U+21FFArrowsStrelice u svakom smjeru, jednostruke i dvostruke← ↔ ⇒
U+2200–U+22FFMathematical OperatorsMatematički operatori — ∀, ∑, ≠, ∞∀ ∑ ≠
U+2300–U+23FFMiscellaneous TechnicalZnakovi tipkovnice i tehnički — ⌘, ⌥, ⌫, ⏎⌘ ⌥ ⏎
U+2500–U+257FBox DrawingLinije i kutovi za terminalske kutije i tablice─ ┌ ╬
U+2580–U+259FBlock ElementsČvrste i zasjenjene blokove, korištene za terminalske grafikone od stupca█ ▓ ░
U+25A0–U+25FFGeometric ShapesKvadrati, krugovi, trokuti i dijamanti■ ● ▲
U+2600–U+26FFMiscellaneous SymbolsVremenske prilike, astrologija, šah, kartice i odijela karata☀ ★ ♥
U+2700–U+27BFDingbatsTiskličeve ukrase — oznake provjere, škare, zvijezde✂ ✓ ➜
U+2800–U+28FFBraille PatternsSvi 256 uzoraka Braille točaka, korišteni za terminalsku grafiku i⠁ ⣿

CJK i punirina

6

Forme s punom širinom su odvojeni znakovi od njihovih ASCII bliznaca, a ne fonta.

RasponBlokŠto je u njemuPrimjer
U+3000–U+303FCJK Symbols and PunctuationIdeografski razmak i CJK interpunkcijaU+3000 je razmak s punom širinom i ne skraćuje ga većina pravila razmaka.  、 。
U+3040–U+309FHiraganaJapanski slogabni za izvorni i gramatikuあ ん
U+30A0–U+30FFKatakanaJapanski slogabni za pozajmljene i naglašavanjeア ン
U+4E00–U+9FFFCJK Unified IdeographsGlavni Han blok — gotovo 21,000 znakova koje dijele kineski, japanski i korejski日 本 語
U+AC00–U+D7AFHangul SyllablesSvih 11,172 predisponiranog korejskog slogovaSvaki se također može pisati kao odvojena Jamo, što normalizacija pomiruje.한 글
U+FF00–U+FFEFHalfwidth and Fullwidth FormsKopije ASCII-ja s punom širinom, i pola-width KatakanaA nije A. Tekst zaljepi od CJK oblika često trebam presavijanja u ASCII.A ! ア

Iznad U+FFFF, i specijalni slučajevi

10

Bilo što ovdje trebam dva UTF-16 jedinica, što je gdje dolaze greške duljine niza.

RasponBlokŠto je u njemuPrimjer
U+D800–U+DB7FHigh SurrogatesPrva polovica UTF-16 para — nikad nije valjana samaUsamljeni zamjenik je ono što niz režnjio kroz emoji ostavlja za sobom.
U+DC00–U+DFFFLow SurrogatesDruga polovica UTF-16 para — nikad nije valjana sama
U+E000–U+F8FFPrivate Use AreaNemoguće po dizajnu, za privatne dogovoreGdje ikone fontove stavljaju svoje glifove. Besmisleno bez podudarnog fonta.
U+FFF0–U+FFFFSpecialsZamjena znakovi i byte order mark-a srodnikaU+FFFD je ono što vidite kada je dekoder odustao od bayta.
U+1D400–U+1D7FFMathematical Alphanumeric SymbolsPodebljani, kurzivna, skripta i dvostruki alfabeti kao znakoviIzvor 𝐟𝐚𝐤𝐞 𝐛𝐨𝐥𝐝 u nazivima društvenih mreža. Nesivljivo.𝐀 𝓪 𝟙
U+1F300–U+1F5FFMiscellaneous Symbols and PictographsVećina ne-lica emoji — vremenske prilike, predmeti, mjesta, simboli🌍 🔥 📄
U+1F600–U+1F64FEmoticonsLica emoji😀 🙂
U+1F680–U+1F6FFTransport and Map SymbolsVozila, promet i simboli mape🚀 🛑
U+1F900–U+1F9FFSupplemental Symbols and PictographsNovija emoji dodaci — novija lica, geste, predmeti🤖 🧠
U+E0000–U+E007FTagsNevidljivi znakovi oznake, korišteni u sekvencama zastaveTakođer vektor za nevidljivi tekst prokradenjeza unutar normalno izgledajućeg niza.

FAQ

Koja je razlika između bloka i pisma?
Blok je kontinuirani raspon kodnih točaka; pismo je sustav pisanja kojem znak pripada. Nisu ista i često se ne slažu — latinski znakovi su rasprostranjeni barem preko sedam blokova, a blok Combining Diacritical Marks koristi nekoliko pisama istodobno. U regex-u, \p{Script=Latin} je gotovo uvijek ono što trebate, ne \p{Block=…}.
Zašto redovi zamjenika nemaju primjere znakova?
Jer zamjenik nije znak. U+D800–U+DFFF su rezervirani kao parni mehanizam za UTF-16: dva od njih zajedno kodiraju jednu kodnu točku iznad U+FFFF. Sami su nevaljani tekst, što je upravo razlog zašto niz izrezan kroz sredinu emoji proizvodi znakovi za zamjenu — zadržali ste pola para.
Zašto se moj naglašeni znak ponekad računa kao dva?
Jer postoji dva načina da se napiše. é može biti jedna kodna točka od Latin-1 Supplement, ili e pa kombinacijski akutni naglasak od Combining Diacritical Marks bloka. Izgledaju identično i uspoređuju se kao nejednaki. Normalizacija na NFC ruši drugi oblik u prvi, i to je za što je alat normalizacije.
Je li emoji jedan znakovi?
Rijetko. Prikazani emoji je često nekoliko kodnih točaka — osnovni simbol, modifikatori tona kože, varijacijski selektori, i sastavnice bezWidth-a veza zajednice zajedno. Duljina od 1 je iznimka, a ne pravilo, i bilo koji kod koji isječe nizove prema indeksu će na kraju razdijeliti jedan.