Přeskočit na obsah

Bloky Unicode

Unicode dělí svůj kódový prostor na pojmenované bloky, z nichž každý je souvislý rozsah vyhrazený jednomu písmu nebo jedné rodině symbolů. Vědět, ve kterém bloku znak leží, promění záhadu — proč se tohle vložení rozbilo, proč ho tenhle regex nenajde — v otázku, na kterou existuje odpověď.

Názvy bloků jsou identifikátory, ne popisy: používají se doslova v regulárním výrazu jako \p{Block=Cyrillic} a v každém souboru dat Unicode, takže zůstávají v angličtině v každém jazyce. Co je přeloženo, je věta vedle nich.

Toto je vybraný výběr spíše než všechny přibližně 340 bloků — ty, které se objevují při práci s textem. Tabulka ASCII pokrývá první blok v plné podrobnosti; tato stránka začíná tam, kde ta končí.

Latina

5

Latina je rozložena na několik bloků, což je důvod, proč ji nikdy zcela nepodařilo namapovat po blocích.

RozsahBlokCo je v tomVzorek
U+0000–U+007FBasic LatinASCII, beze změny: latinské písmeno, číslice, interpunkce, ovládací kódyA z 0 ?
U+0080–U+00FFLatin-1 SupplementZápadoevropské přízvuky plus £ § × ÷ a bez přerušení mezeryé ñ ü ×
U+0100–U+017FLatin Extended-AStředoevropské a východoevropské přízvuky — č, ł, ő, șč ł ő š
U+0180–U+024FLatin Extended-BDalší písmena pro africké a fonetické pravopisyƒ ǎ ȳ
U+1E00–U+1EFFLatin Extended AdditionalVietnamština a další víceznačná latinská písmenaạ ế ṛ

Kombinované značky a modifikátory

4

Tyto jsou připojeny k znaku před nimi a nemají šíři sami o sobě.

RozsahBlokCo je v tomVzorek
U+0300–U+036FCombining Diacritical MarksPřízvuky aplikované na předcházející znakDruhý, rozložený způsob zápisu é. Normalizujte na NFC, aby se zhroutilo.◌́ ◌̈ ◌̌
U+02B0–U+02FFSpacing Modifier LettersPísmena nadpisu a IPA stres a tónu značkyʰ ˈ ˚
U+FE00–U+FE0FVariation SelectorsNeviditelné voliče volby textu nebo emoji prezentaceVS16 je to, co se změní ✔ na emoji. Neviditelné, ale to se počítá.
U+FE20–U+FE2FCombining Half MarksPoloviny značek zahrnující dva znaky

Ostatní skripty

8
RozsahBlokCo je v tomVzorek
U+0370–U+03FFGreek and CopticŘečtina a koptské písmeno, která sdílí jeho blokα Ω π
U+0400–U+04FFCyrillicRuština, ukrajinština, srbština, bulharština a související abecedyд Я ж
U+0590–U+05FFHebrewHebrejská písmena, samohláskové body a cantillation značkyא ש
U+0600–U+06FFArabicArabská písmena, v jejich izolovaných formáchا ب ي
U+0900–U+097FDevanagariHindština, sanskrt, marathi a související jazykyक ह
U+0E00–U+0E7FThaiThajské souhlásky, samohlásky a tónové značkyก ท
U+10A0–U+10FFGeorgianGruzínský Mkhedruliა ბ
U+1F00–U+1FFFGreek ExtendedPolytonic řečtina — přízvuky klasických textůᾰ ῶ

Interpunkce a čísla

5

Zdroj nejvíce neviditelných postav, která přežije kopírování-vkládání.

RozsahBlokCo je v tomVzorek
U+2000–U+206FGeneral PunctuationČárky, kudrnaté uvozovky, elipsa — a nejvíce neviditelných mezerU+200B nulová šířka mezery a U+2060 slovo joiner žijí zde.– — “ ” …
U+2070–U+209FSuperscripts and SubscriptsNadpis a dolní index číslic a písmen⁰ ⁴ ₂
U+20A0–U+20CFCurrency SymbolsSymboly měny latino-1 nemá místo — €, ₴, ₹, ₺€ ₴ ₺
U+2100–U+214FLetterlike SymbolsSymboly postaveny z písmen — ™, №, ℃, ℓ™ ℃ №
U+2150–U+218FNumber FormsVulgární frakce a římská čísla jako jednotlivé znaky⅓ ⅕ Ⅷ

Symboly a kreslení

9
RozsahBlokCo je v tomVzorek
U+2190–U+21FFArrowsŠipky v každém směru, jednoduché a dvojité← ↔ ⇒
U+2200–U+22FFMathematical OperatorsMatematické operátory — ∀, ∑, ≠, ∞∀ ∑ ≠
U+2300–U+23FFMiscellaneous TechnicalKlávesnice a technické symboly — ⌘, ⌥, ⌫, ⏎⌘ ⌥ ⏎
U+2500–U+257FBox DrawingŘádky a rohy terminálových boxů a tabulek─ ┌ ╬
U+2580–U+259FBlock ElementsPevné a stínované bloky používané pro terminální grafy█ ▓ ░
U+25A0–U+25FFGeometric ShapesČtverce, kruhy, trojúhelníky a diamanty■ ● ▲
U+2600–U+26FFMiscellaneous SymbolsPočasí, astrologie, šachy, karty a barvy karet☀ ★ ♥
U+2700–U+27BFDingbatsTiskárenské ozdoby — značky zaškrtnutí, nůžky, hvězdy✂ ✓ ➜
U+2800–U+28FFBraille PatternsVšechny 256 brailleových tečkových vzory používané také pro grafiku terminálu⠁ ⣿

CJK a celičífeční

6

Celičífeční tvary jsou oddělené znaky od jejich ASCII dvojčat, ne font.

RozsahBlokCo je v tomVzorek
U+3000–U+303FCJK Symbols and PunctuationIdeografické místo a CJK interpunkceU+3000 je plná šířka mezery a není oříznuta nejvíce mezerami pravidel.  、 。
U+3040–U+309FHiraganaJaponská slabika pro nativní slova a gramatikuあ ん
U+30A0–U+30FFKatakanaJaponská slabika pro cizí slova a důrazア ン
U+4E00–U+9FFFCJK Unified IdeographsHlavní blok Han — téměř 21 000 znaků sdíleno čínština, japončina a korejština日 本 語
U+AC00–U+D7AFHangul SyllablesVšechny 11 172 předskládaných korejských slabikKaždý lze také napsat jako samostatné Jamo, které normalizace sjednocuje.한 글
U+FF00–U+FFEFHalfwidth and Fullwidth FormsCeličífeční kopie ASCII a poloviční šíře katakanyA není A. Text vložený z CJK formulářů se často musí složit na ASCII.A ! ア

Výše U+FFFF a speciální případy

10

Cokoli zde trvá dvě jednotky UTF-16, což je odkud pocházejí chyby délky řetězce.

RozsahBlokCo je v tomVzorek
U+D800–U+DB7FHigh SurrogatesPrvní polovina páru UTF-16 — nikdy na svou vlastní hodnotuOsamělý náhradník je to, co řetězec proříznutý uprostřed emoji opouští.
U+DC00–U+DFFFLow SurrogatesDruhá polovina páru UTF-16 — nikdy platná na svou vlastní
U+E000–U+F8FFPrivate Use AreaNepřiřazeno záměrem pro soukromé dohodyKde si ikona fonty umístí své glyfy. Bezvýznamné bez shodného fontu.
U+FFF0–U+FFFFSpecialsNáhradní znak a podepsaní bajtů pořadí relativiU+FFFD je to, co vidíte, když dekodér vzdal bajtový.
U+1D400–U+1D7FFMathematical Alphanumeric SymbolsTučné, kurzíva, skript a dvojí zaražená abeceda jako znakyZdroj 𝐟𝐚𝐤𝐞 𝐛𝐨𝐥𝐝 v sociálních mediích. Prohledávatelné.𝐀 𝓪 𝟙
U+1F300–U+1F5FFMiscellaneous Symbols and PictographsNejčastěji ne-tvář emoji — počasí, objekty, místa, symboly🌍 🔥 📄
U+1F600–U+1F64FEmoticonsTvář emoji😀 🙂
U+1F680–U+1F6FFTransport and Map SymbolsVozidla, doprava a symboly mapy🚀 🛑
U+1F900–U+1F9FFSupplemental Symbols and PictographsPozdější dodatky emoji — pozdější tváře, gesta, objekty🤖 🧠
U+E0000–U+E007FTagsNeviditelné znaky tagů, používané v sekvencích vlajekTaké vektor pro neviditelný text vlegnut do normálně vypadajícího řetězce.

Časté dotazy

Jaký je rozdíl mezi blokem a skriptem?
Blok je souvislý rozsah bodů kódu; skript je systém psaní, kterému znak patří. Nejsou stejné a často se neshodují — latinské znaky jsou rozloženy přes nejméně sedm bloků a blok Combining Diacritical Marks používá několik skriptů najednou. V regulárním výrazu je \p{Script=Latin} téměř vždy to, co chcete, ne \p{Block=…}.
Proč nemají řádky surrogátů žádné vzorové znaky?
Protože náhradník není znak. U+D800–U+DFFF jsou vyhrazeny jako mechanismus páru pro UTF-16: dva z nich dohromady kódují jeden bod kódu nad U+FFFF. Sami jsou neplatným textem, což je přesně důvod, proč řetězec proříznutý uprostřed emoji produkuje náhradní znak — udrželi jste polovinu páru.
Proč se můj akcent znak někdy počítá jako dva?
Protože jsou dva způsoby, jak to napsat. é může být jeden bod kódu z Latin-1 Supplement, nebo e následované kombinujícím ostrým přízvukem z bloku Combining Diacritical Marks. Vypadají stejně a porovnávají se jako nerovné. Normalizace na NFC zhroutí druhou formu v první, a to je to, k čemu je normalizační nástroj.
Je emoji jeden znak?
Zřídka. Jeden zobrazený emoji je často několik bodů kódu — základní symbol, modifikátory tónu kůže, voliče variací a nulové šířky spojovače vážící rodinu dohromady. Délka 1 je výjimka, ne pravidlo, a jakýkoli kód, který krájí řetězce podle indexu, se nakonec jeden rozdělí.