Preskoči na vsebino

Bloki Unicode

Unicode deli svoj prostor kodov na poimenovane bloke, vsak obseža teritorij, rezerviran za eno pisavo ali eno družino simbolov. Vedenje, v katerem bloku je znak, je ono, kar spremeni skrivnost — zakaj je ta prilepljeni razpad, zakaj ta regex ne prejme — v odgovorljivo vprašanje.

Imena blokov so identifikatorji, ne opisi: se uporabljajo dobesedno v regexu kot \p{Block=Cyrillic} in v vsaki datoteki podatkov Unicode, zato ostanejo v angleščini v vsakem jeziku. Kar se prevaja, je stavek poleg njih.

To je kurirano izbor namesto približno 340 blokov — tisti, ki se pojavijo pri delu z besedilom. Tabela ASCII pokriva prvi blok v polni podrobnosti; ta stran se začne, kjer se tisti ustavi.

Latinica

5

Latinica je razpršena čez več blokov, zato ujemanje s pravo reko nikoli ne deluje povsem.

ObsegBlokKaj je v njemVzorec
U+0000–U+007FBasic LatinASCII, nespremenjena: Latinični znaki, števke, ločila, krmilni kodiA z 0 ?
U+0080–U+00FFLatin-1 SupplementZahodno evropski naglas, plus £ § × ÷ in razmik brez prekinjanjaé ñ ü ×
U+0100–U+017FLatin Extended-ASrednje in vzhodno evropski naglas — č, ł, ő, șč ł ő š
U+0180–U+024FLatin Extended-BDodatna črka za African in fonetske ortografijeƒ ǎ ȳ
U+1E00–U+1EFFLatin Extended AdditionalVietnamščina in druge več-naglašene latinične črkeạ ế ṛ

Kombinacijski znaki in modifikatorji

4

Ti se pripnejo na znak pred njim in imajo lastno širino.

ObsegBlokKaj je v njemVzorec
U+0300–U+036FCombining Diacritical MarksNaglasi, ki se nanašajo na prejšnji znakDrugi, razstavljeni način, da se napiše é. Normalizacija na NFC, da se zruši.◌́ ◌̈ ◌̌
U+02B0–U+02FFSpacing Modifier LettersNadnapisa črka in IPA poudarek in tonski znakiʰ ˈ ˚
U+FE00–U+FE0FVariation SelectorsNevidnih selektorjev izbira besedilo ali emoji predstavoVS16 je tisto, ki se spremeni ✔ v emoji. Nevidna, vendar šteje.
U+FE20–U+FE2FCombining Half MarksPolovice znakov, ki se razprostirajo po dveh znakih

Druge pisave

8
ObsegBlokKaj je v njemVzorec
U+0370–U+03FFGreek and CopticGrščina in koptske črke, ki delijo njen blokα Ω π
U+0400–U+04FFCyrillicRuščina, ukrajinščina, srbščina, bolgarščina in sorodne abecedeд Я ж
U+0590–U+05FFHebrewHebrejev črke, samoglasnike točke in kantillacijo znakeא ש
U+0600–U+06FFArabicArabske črke, v njihovih izoliranih oblikahا ب ي
U+0900–U+097FDevanagariHindi, sanskrt, marathi in sorodnih jezikovक ह
U+0E00–U+0E7FThaiTajske soglavnike, samoglasnike in tonske znakeก ท
U+10A0–U+10FFGeorgianGruzijski Mkhedruliა ბ
U+1F00–U+1FFFGreek ExtendedPolitonska grščina — naglasi klasičnih besedilᾰ ῶ

Ločila in številke

5

Vir večine nevidnih znakov, ki preživijo kopiranje in lepljenje.

ObsegBlokKaj je v njemVzorec
U+2000–U+206FGeneral PunctuationPomišljaji, kodasti navedki, elipsa — in večina nevidnih presledkovU+200B ničelne širine prostor in U+2060 besedi stranica živita tukaj.– — “ ” …
U+2070–U+209FSuperscripts and SubscriptsNadnapisa in subscript števke in črke⁰ ⁴ ₂
U+20A0–U+20CFCurrency SymbolsZnaki valute Latin-1 nima kraja za — €, ₴, ₹, ₺€ ₴ ₺
U+2100–U+214FLetterlike SymbolsSimboli zgrajeni iz črk — ™, №, ℃, ℓ™ ℃ №
U+2150–U+218FNumber FormsVulgar frakcije in rimske številke kot enojni znaki⅓ ⅕ Ⅷ

Simboli in risanje

9
ObsegBlokKaj je v njemVzorec
U+2190–U+21FFArrowsPuščice v vsakem smislu, enojni in dvojni← ↔ ⇒
U+2200–U+22FFMathematical OperatorsMatematični operaterji — ∀, ∑, ≠, ∞∀ ∑ ≠
U+2300–U+23FFMiscellaneous TechnicalTipkovnica in tehnični simboli — ⌘, ⌥, ⌫, ⏎⌘ ⌥ ⏎
U+2500–U+257FBox DrawingVrstice in vogali za terminalne polja in tabele─ ┌ ╬
U+2580–U+259FBlock ElementsTrdne in zasenčene bloke, ki se uporabljajo za terminalske grafikone█ ▓ ░
U+25A0–U+25FFGeometric ShapesKvadrati, krogi, trikotniki in diamanti■ ● ▲
U+2600–U+26FFMiscellaneous SymbolsVreme, astrologija, šah, kartice in barve kart☀ ★ ♥
U+2700–U+27BFDingbatsTiskane okraske — kontrolni znaki, škarje, zvezdice✂ ✓ ➜
U+2800–U+28FFBraille PatternsVseh 256 Braille točkovnih vzorcev, ki se uporabljajo tudi za terminalske grafike⠁ ⣿

CJK in polna širina

6

Polne oblike so ločeni znaki od svojih bližnjih ASCII, ne pisava.

ObsegBlokKaj je v njemVzorec
U+3000–U+303FCJK Symbols and PunctuationIdeografski prostor in CJK ločilaU+3000 je presledek polne širine in ga večina pravil za presledke ne obriše.  、 。
U+3040–U+309FHiraganaJaponska zlogovnica za domače besede in slovnicoあ ん
U+30A0–U+30FFKatakanaJaponska zlogovnica za besedi tujine in poudarekア ン
U+4E00–U+9FFFCJK Unified IdeographsGlavni blok Han — skoraj 21.000 znakov, ki jih delita kitajščina, japonščina in korejščina日 本 語
U+AC00–U+D7AFHangul SyllablesVseh 11.172 vnaprej sestavljenih korejskih zlogovVsak se lahko tudi napiše kot ločene Jamo, katere normalizacija se spopada.한 글
U+FF00–U+FFEFHalfwidth and Fullwidth FormsPolne širine kopije ASCII in polovično širine KatakanaA ni A. Besedilo prilepljeno iz oblik CJK pogosto potrebuje prepogibanja na ASCII.A ! ア

Nad U+FFFF in posebni primeri

10

Kaj je tukaj potrebuje dve enoti UTF-16, kar je tisto, od koder prihajajo hrošči pri dolžini niza.

ObsegBlokKaj je v njemVzorec
U+D800–U+DB7FHigh SurrogatesPrva polovica para UTF-16 — nikoli ni veljavna sama zaseEnojni nadomestek je tisto, kar niz, ki se razreže skozi emoji, pusti za seboj.
U+DC00–U+DFFFLow SurrogatesDruga polovica para UTF-16 — nikoli ni veljavna sama zase
U+E000–U+F8FFPrivate Use AreaNeizvršena po zasnovi, za zasebne pogodbeKjer ikone pisave dajejo svoje glifi. Brez ujemanja pisave brezsmiselna.
U+FFF0–U+FFFFSpecialsNadomestni znak in sorodniki red bajta oznakeU+FFFD je tisto, kar vidiš, ko je dekoder obupal.
U+1D400–U+1D7FFMathematical Alphanumeric SymbolsKrepko, kurzivno, skriptno in dvojno potrditveno abecedo kot znakeVir 𝐟𝐚𝐤𝐞 𝐛𝐨𝐥𝐝 v socijalnih medijskih imenih. Neiskljiv.𝐀 𝓪 𝟙
U+1F300–U+1F5FFMiscellaneous Symbols and PictographsVečina ne-obrazna emoji — vreme, predmeti, kraji, simboli🌍 🔥 📄
U+1F600–U+1F64FEmoticonsObraza emoji😀 🙂
U+1F680–U+1F6FFTransport and Map SymbolsVozila, promet in simboli zemljevida🚀 🛑
U+1F900–U+1F9FFSupplemental Symbols and PictographsPoznejši dodatki emoji — poznejša obraza, kretnje, predmeti🤖 🧠
U+E0000–U+E007FTagsNevidni znaki oznak, ki se uporabljajo v zaporedjih zastavicTudi vektor za nevidno besedilo prikritega znotraj normalnega videzu niza.

FAQ

Kakšna je razlika med blokom in pisavo?
Blok je obsegli teritorij kodnih točk; pisava je sistem pisanja, kateremu pripada znak. Nista enaka in se pogosto ne strinjata — latinični znaki so razpršeni čez najmanj sedem blokov in blok Combining Diacritical Marks se uporablja več pisav hkrati. V regexu je \p{Script=Latin} skoraj vedno, kar hočeš, ne \p{Block=…}.
Zakaj vrstice nadomestka nimajo vzorčnih znakov?
Ker nadomestek ni znak. U+D800–U+DFFF so rezervirani kot parni mehanizem za UTF-16: dva od njih skupaj kodirati eno kodno točko nad U+FFFF. Na svojo roko so neveljavno besedilo, kar je natanko razlog, zakaj niz, ki je prerezna skozi emoji, proizvede nadomestni znak — obdržal si pol para.
Zakaj se moj poudarkan znak včasih šteje kot dva?
Ker obstajata dva načina, kako ga napisati. é je lahko ena kodna točka iz Latin-1 Supplement ali e, ki mu sledi kombinacijski akutni naglas iz bloka Combining Diacritical Marks. Izgledajo enako in se primerjajo kot neenaka. Normalizacija na NFC zruši drugo obliko v prvo in to je tisto, za kar je orodje normalizacije.
Ali je emoji en znak?
Redko. Enojni prikazani emoji je pogosto več kodnih točk — osnovni simbol, modifikatorji tona kože, selektorji različic in ničelne širine spojniki, ki skupaj vežejo družino. Dolžina 1 je izjema, ne pravilo, in kateri koli kod, ki rezine nize po indeksu, bo sčasoma razdelil enega.