İçeriğe atla

Unicode blokları

Unicode kod alanını adlandırılmış bloklara böler, her biri bir komut dosyası veya bir sembol ailesi için ayrılmış bitişik bir aralık. Bir karakterin hangi blokta yaşadığını bilmek bir gizemi — bu yapıştırma neden kırılmıştır, bu regex neden onu kaçırmıştır — cevaplanabilir bir soruya dönüştürür.

Blok adları tanımlayıcıdır, tanımlar değildir: \p{Block=Cyrillic} gibi bir regexte sözüyle kullanılırlar ve her Unicode veri dosyasında, bu nedenle her dilde İngilizce kalırlar. Çevrilen şey yanlarındaki cümledir.

Bu, kabaca 340 bloğun tümü yerine metin işiyle çalışırken ortaya çıkan küratörlü bir seçimidir. ASCII tablosu ilk bloğu tamamen ayrıntıyla kapsar; bu sayfa oradan başlar.

Latin

5

Latin birkaç bloka yayılır, bu yüzden blok tarafından eşleştirme hiçbir zaman oldukça çalışmaz.

AralıkBlokİçinde ne varÖrnek
U+0000–U+007FBasic LatinASCII, değişmez: Latin harfleri, rakamlar, noktalama, kontrol kodlarıA z 0 ?
U+0080–U+00FFLatin-1 SupplementBatı Avrupa aksan, artı £ § × ÷ ve bölünmez boşluké ñ ü ×
U+0100–U+017FLatin Extended-AOrta ve Doğu Avrupa aksan — č, ł, ő, șč ł ő š
U+0180–U+024FLatin Extended-BAfrika ve fonetik yazım için ek harflerƒ ǎ ȳ
U+1E00–U+1EFFLatin Extended AdditionalÇokkatlı sesli harfleri olan Vietnamca ve diğer Latin harfleriạ ế ṛ

Birleştirici işaretler ve değiştiriciler

4

Bunlar onlardan önceki karaktere bağlanır ve kendi genişlikleri yoktur.

AralıkBlokİçinde ne varÖrnek
U+0300–U+036FCombining Diacritical MarksAksan önceki karaktere uygulanmışİkinci, ayrıştırılmış é yazma yolu. NFC'ye normalleştirme bunu çöker.◌́ ◌̈ ◌̌
U+02B0–U+02FFSpacing Modifier LettersÜstsimge harfleri ve IPA stres ve ton işaretleriʰ ˈ ˚
U+FE00–U+FE0FVariation SelectorsMetin seçim veya emoji sunumunu seçen görünmez seçicilerVS16 ✔'yi emoji'ye dönüştürür. Görünmez, ancak sayılır.
U+FE20–U+FE2FCombining Half Marksİki karakteri kaplayan işaretler

Diğer komut dosyaları

8
AralıkBlokİçinde ne varÖrnek
U+0370–U+03FFGreek and CopticYunan ve Koptik harfleri bu bloğu paylaşırα Ω π
U+0400–U+04FFCyrillicRus, Ukrayna, Sırp, Bulgar ve ilgili alfabelerд Я ж
U+0590–U+05FFHebrewAraştırma harfleri, ünlü noktaları ve kantilasyon işaretleriא ש
U+0600–U+06FFArabicArapça harfleri, izole formlarındaا ب ي
U+0900–U+097FDevanagariHintçe, Sanskritçe, Marathi ve ilgili dillerक ह
U+0E00–U+0E7FThaiTay ünsüzleri, ünlüler ve ton işaretleriก ท
U+10A0–U+10FFGeorgianGeorgian Mkhedruliა ბ
U+1F00–U+1FFFGreek ExtendedPolytonic Yunanistan — klasik metinlerin aksanᾰ ῶ

Noktalama ve sayılar

5

Bir kopyala yapıştırdan hayatta kalacak görünmez karakterlerin çoğunun kaynağı.

AralıkBlokİçinde ne varÖrnek
U+2000–U+206FGeneral PunctuationTireleri, kıvrımlı tırnakları, elipsis — ve en görünmez boşluklarU+200B sıfır genişlik boşluğu ve U+2060 sözcük birleştiricisi burada yaşar.– — “ ” …
U+2070–U+209FSuperscripts and SubscriptsÜstsimge ve altsimge rakamlar ve harfler⁰ ⁴ ₂
U+20A0–U+20CFCurrency SymbolsLatin-1'in yer olmadığı para birlikleri — €, ₴, ₹, ₺€ ₴ ₺
U+2100–U+214FLetterlike SymbolsHarflerden inşa edilen semboller — ™, №, ℃, ℓ™ ℃ №
U+2150–U+218FNumber FormsVulgar kesirleri ve Roma rakamları tek karakterler olarak⅓ ⅕ Ⅷ

Semboller ve çizim

9
AralıkBlokİçinde ne varÖrnek
U+2190–U+21FFArrowsHer yönde oklar, tek ve çift← ↔ ⇒
U+2200–U+22FFMathematical OperatorsMatematiksel operatörler — ∀, ∑, ≠, ∞∀ ∑ ≠
U+2300–U+23FFMiscellaneous TechnicalTuş takımı ve teknik semboller — ⌘, ⌥, ⌫, ⏎⌘ ⌥ ⏎
U+2500–U+257FBox DrawingTerminal kutuları ve tablolar için çizgiler ve köşeler─ ┌ ╬
U+2580–U+259FBlock ElementsKatı ve gölgeli bloklar, terminal çubuk grafikleri için kullanılan█ ▓ ░
U+25A0–U+25FFGeometric ShapesKareler, daireler, üçgenler ve elmaslar■ ● ▲
U+2600–U+26FFMiscellaneous SymbolsHava durumu, astroloji, satranç, kartlar ve kart takımları☀ ★ ♥
U+2700–U+27BFDingbatsYazıcı süsleri — kontrol işaretleri, makas, yıldızlar✂ ✓ ➜
U+2800–U+28FFBraille PatternsTüm 256 Braille nokta desenleri, terminal grafikleri için de kullanılan⠁ ⣿

CJK ve tam genişlik

6

Tam genişlik formları ASCII ikizlerinden ayrı karakterlerdir, yazı tipi değil.

AralıkBlokİçinde ne varÖrnek
U+3000–U+303FCJK Symbols and Punctuationİdeografik boşluk ve CJK noktalamaU+3000 tam genişlik boşluk ve çoğu boşluk kuralları tarafından kısaltılmaz.  、 。
U+3040–U+309FHiraganaYerli kelimeleri ve dilbilgisi için Japonca hecelemeあ ん
U+30A0–U+30FFKatakanaÖdünç verilen kelimeleri ve vurgu için Japonca hecelemeア ン
U+4E00–U+9FFFCJK Unified IdeographsÇin, Japonya ve Kore tarafından paylaşılan ana Han bloğu — neredeyse 21.000 karakter日 本 語
U+AC00–U+D7AFHangul SyllablesTüm 11.172 önceden oluşturulmuş Kore heceleriHer biri ayrı Jamo olarak da yazılabilir, normalleştirme uzlaştırır.한 글
U+FF00–U+FFEFHalfwidth and Fullwidth FormsASCII'nin tam genişlik kopyaları ve yarı genişlik KatakanaA A değildir. CJK formlarından yapıştırılan metin genellikle ASCII'ye katlanmaya ihtiyaç duyar.A ! ア

U+FFFF'nin üzerinde ve özel durumlar

10

Burada herhangi bir şey iki UTF-16 birimi alır, bu da dize-uzunluk hatalarının kaynağıdır.

AralıkBlokİçinde ne varÖrnek
U+D800–U+DB7FHigh SurrogatesUTF-16 çiftinin ilk yarısı — hiçbir zaman kendi başında geçerli değilYalnız bir vekil bir emoji aracılığında kesilen dizenin ardından bıraktığı şeydir.
U+DC00–U+DFFFLow SurrogatesUTF-16 çiftinin ikinci yarısı — hiçbir zaman kendi başında geçerli değil
U+E000–U+F8FFPrivate Use AreaTasarım tarafından atanmamış, özel anlaşmalar içinIcon yazı tiplerinin glifleri nereye koyarlar. Eşleşen yazı tipi olmadan anlamsız.
U+FFF0–U+FFFFSpecialsDeğiştirme karakteri ve bayt sıra işaretinin akrabalarıU+FFFD bir kod çözücü teslim olduğunda ne görürsünüz.
U+1D400–U+1D7FFMathematical Alphanumeric SymbolsKalın, italik, komut dosyası ve çift vuruş alfabeleri karakter olarakSosyal medya adlarında 𝐟𝐚𝐤𝐞 𝐛𝐨𝐥𝐝 kaynağı. Araştırılamaz.𝐀 𝓪 𝟙
U+1F300–U+1F5FFMiscellaneous Symbols and PictographsEn çok yüz olmayan emoji — hava durumu, nesneler, yerler, semboller🌍 🔥 📄
U+1F600–U+1F64FEmoticonsYüz emoji😀 🙂
U+1F680–U+1F6FFTransport and Map SymbolsAraçlar, trafik ve harita sembolleri🚀 🛑
U+1F900–U+1F9FFSupplemental Symbols and PictographsSonraki emoji ilaveler — sonraki yüzler, hareketler, nesneler🤖 🧠
U+E0000–U+E007FTagsBayrak dizilerinde kullanılan görünmez etiket karakterleriAyrıca normal görünümlü bir dize içine gizli metin kaçırmanın vektörü.

FAQ

Bir blok ile bir komut dosyası arasındaki fark nedir?
Bir blok kod noktalarının bitişik bir aralığı; bir komut dosyası bir karakterin ait olduğu yazı sistemidir. Aynı değiller ve genellikle anlaşmazlığa düşerler — Latin karakterleri en az yedi bloka yayılır ve Combining Diacritical Marks bloğu birkaç komut dosyası tarafından aynı anda kullanılır. Regexde, \p{Script=Latin} neredeyse her zaman istediğiniz şeydir, \p{Block=…} değil.
Vekil satırları neden örnek karakterleri yoktur?
Çünkü bir vekil bir karakter değildir. U+D800–U+DFFF, UTF-16 için bir çift mekanizması olarak ayrılmıştır: ikisi birlikte U+FFFF'den yukarıda bir kod noktasını kodlarlar. Kendi başlarına geçersiz metindir, ki bu tam olarak neden bir emoji'nin ortasında kesilen bir dizenin değiştirme karakterini ürettiğidir — çiftin yarısını tuttunuz.
Aksan karakterim bazen neden iki olarak sayılır?
Çünkü bunu yazmanın iki yolu vardır. é Latin-1 Supplement'ten bir kod noktası veya Combining Diacritical Marks bloğundan bir gönderim aksan tarafından e olabilir. Aynı görünür ve eşit olmayan karşılaştırmalar yapılır. NFC'ye normalleştirme, ikinci formu birinciye çöker ve bu bir normalleştirme aracı içindir.
Emoji bir karakter midir?
Nadir. Tek bir görüntülenen emoji genellikle birkaç kod noktasıdır — bir temel sembol, cilt tonu değiştiricileri, varyasyon seçicileri ve bir aile bağlamak için sıfır genişlik birleştiriciler. Bir uzunluk 1 istisna, norm değil ve indeks tarafından dizeleri kesen herhangi bir kod sonunda bir tanesini bölecek.