Script Codes Table

–click a code to copy it
CodeNo.ScriptUnicode since
Adlm166Adlam9.0
Afak439Afaka–
Aghb239Caucasian Albanian7.0
Ahom338Ahom, Tai Ahom8.0
Arab160Arabic1.1
Aran161Arabic (Nastaliq variant)1.1
Armi124Imperial Aramaic5.2
Armn230Armenian1.1
Avst134Avestan5.2
Bali360Balinese5.0
Bamu435Bamum5.2
Bass259Bassa Vah7.0
Batk365Batak6.0
Beng325Bengali (Bangla)1.1
Berf258Beria Erfe–
Bhks334Bhaiksuki9.0
Blis550Blissymbols–
Bopo285Bopomofo1.1
Brah300Brahmi6.0
Brai570Braille3.0
Bugi367Buginese4.1
Buhd372Buhid3.2
Cakm349Chakma6.1
Cans440Unified Canadian Aboriginal Syllabics3.0
Cari201Carian5.1
Cham358Cham5.1
Cher445Cherokee3.0
Chis298Chisoi–
Chrs109Chorasmian13.0
Cirt291Cirth–
Copt204Coptic4.1
Cpmn402Cypro-Minoan14.0
Cprt403Cypriot syllabary4.0
Cyrl220Cyrillic1.1
Cyrs221Cyrillic (Old Church Slavonic variant)1.1
Deva315Devanagari (Nagari)1.1
Diak342Dives Akuru13.0
Dogr328Dogra11.0
Dsrt250Deseret (Mormon)3.1
Dupl755Duployan shorthand, Duployan stenography7.0
Egyd070Egyptian demotic–
Egyh060Egyptian hieratic5.2
Egyp050Egyptian hieroglyphs5.2
Elba226Elbasan7.0
Elym128Elymaic12.0
Ethi430Ethiopic (Geʻez)3.0
Gara164Garay16.0
Geok241Khutsuri (Asomtavruli and Nuskhuri)1.1
Geor240Georgian (Mkhedruli and Mtavruli)1.1
Glag225Glagolitic4.1
Gong312Gunjala Gondi11.0
Gonm313Masaram Gondi10.0
Goth206Gothic3.1
Gran343Grantha7.0
Grek200Greek1.1
Gujr320Gujarati1.1
Gukh397Gurung Khema16.0
Guru310Gurmukhi1.1
Hanb503Han with Bopomofo (alias for Han + Bopomofo)1.1
Hang286Hangul (Hangŭl, Hangeul)1.1
Hani500Han (Hanzi, Kanji, Hanja)1.1
Hano371Hanunoo (Hanunóo)3.2
Hans501Han (Simplified variant)1.1
Hant502Han (Traditional variant)1.1
Hatr127Hatran8.0
Hebr125Hebrew1.1
Hira410Hiragana1.1
Hluw080Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)8.0
Hmng450Pahawh Hmong7.0
Hmnp451Nyiakeng Puachue Hmong12.0
Hntl504Han (Traditional variant) with Latin (alias for Hant + Latn)–
Hrkt412Japanese syllabaries (alias for Hiragana + Katakana)1.1
Hung176Old Hungarian (Hungarian Runic)8.0
Inds610Indus (Harappan)–
Ital210Old Italic (Etruscan, Oscan, etc.)3.1
Jamo284Jamo (alias for Jamo subset of Hangul)1.1
Java361Javanese5.2
Jpan413Japanese (alias for Han + Hiragana + Katakana)1.1
Jurc510Jurchen–
Kali357Kayah Li5.1
Kana411Katakana1.1
Kawi368Kawi15.0
Khar305Kharoshthi4.1
Khmr355Khmer3.0
Khoj322Khojki7.0
Kitl505Khitan large script–
Kits288Khitan small script13.0
Knda345Kannada1.1
Kore287Korean (alias for Hangul + Han)1.1
Kpel436Kpelle–
Krai396Kirat Rai16.0
Kthi317Kaithi5.2
Lana351Tai Tham (Lanna)5.2
Laoo356Lao1.1
Latf217Latin (Fraktur variant)1.1
Latg216Latin (Gaelic variant)1.1
Latn215Latin1.1
Leke364Leke–
Lepc335Lepcha (Róng)5.1
Limb336Limbu4.0
Lina400Linear A7.0
Linb401Linear B4.0
Lisu399Lisu (Fraser)5.2
Loma437Loma–
Lyci202Lycian5.1
Lydi116Lydian5.1
Mahj314Mahajani7.0
Maka366Makasar11.0
Mand140Mandaic, Mandaean6.0
Mani139Manichaean7.0
Marc332Marchen9.0
Maya090Mayan hieroglyphs–
Medf265Medefaidrin (Oberi Okaime, Oberi Ɔkaimɛ)11.0
Mend438Mende Kikakui7.0
Merc101Meroitic Cursive6.1
Mero100Meroitic Hieroglyphs6.1
Mlym347Malayalam1.1
Modi324Modi, Moḍī7.0
Mong145Mongolian3.0
Moon218Moon (Moon code, Moon script, Moon type)–
Mroo264Mro, Mru7.0
Mtei337Meitei Mayek (Meithei, Meetei)5.2
Mult323Multani8.0
Mymr350Myanmar (Burmese)3.0
Nagm295Nag Mundari15.0
Nand311Nandinagari12.0
Narb106Old North Arabian (Ancient North Arabian)7.0
Nbat159Nabataean7.0
Newa333Newa, Newar, Newari, Nepāla lipi9.0
Nkdb085Naxi Dongba (na²¹ɕi³³ to³³ba²¹, Nakhi Tomba)–
Nkgb420Naxi Geba (na²¹ɕi³³ gʌ²¹ba²¹, 'Na-'Khi ²Ggŏ-¹baw, Nakhi Geba)–
Nkoo165N’Ko5.0
Nshu499Nüshu10.0
Ogam212Ogham3.0
Olck261Ol Chiki (Ol Cemet’, Ol, Santali)5.1
Onao296Ol Onal16.0
Orkh175Old Turkic, Orkhon Runic5.2
Orya327Oriya (Odia)1.1
Osge219Osage9.0
Osma260Osmanya4.0
Ougr143Old Uyghur14.0
Palm126Palmyrene7.0
Pauc263Pau Cin Hau7.0
Pcun015Proto-Cuneiform–
Pelm016Proto-Elamite–
Perm227Old Permic7.0
Phag331Phags-pa5.0
Phli131Inscriptional Pahlavi5.2
Phlp132Psalter Pahlavi7.0
Phlv133Book Pahlavi–
Phnx115Phoenician5.0
Plrd282Miao (Pollard)6.1
Piqd293Klingon (KLI pIqaD)–
Prti130Inscriptional Parthian5.2
Psin103Proto-Sinaitic–
Qaaa900Reserved for private use (start)–
Qabx949Reserved for private use (end)–
Ranj303Ranjana–
Rjng363Rejang (Redjang, Kaganga)5.1
Rohg167Hanifi Rohingya11.0
Roro620Rongorongo–
Runr211Runic3.0
Samr123Samaritan5.2
Sara292Sarati–
Sarb105Old South Arabian5.2
Saur344Saurashtra5.1
Seal590(Small) Seal–
Sgnw095SignWriting8.0
Shaw281Shavian (Shaw)4.0
Shrd319Sharada, Śāradā6.1
Shui530Shuishu–
Sidd302Siddham, Siddhaṃ, Siddhamātṛkā7.0
Sidt180Sidetic–
Sind318Khudawadi, Sindhi7.0
Sinh348Sinhala3.0
Sogd141Sogdian11.0
Sogo142Old Sogdian11.0
Sora398Sora Sompeng6.1
Soyo329Soyombo10.0
Sund362Sundanese5.1
Sunu274Sunuwar16.0
Sylo316Syloti Nagri4.1
Syrc135Syriac3.0
Syre138Syriac (Estrangelo variant)3.0
Syrj137Syriac (Western variant)3.0
Syrn136Syriac (Eastern variant)3.0
Tagb373Tagbanwa3.2
Takr321Takri, Ṭākrī, Ṭāṅkrī6.1
Tale353Tai Le4.0
Talu354New Tai Lue4.1
Taml346Tamil1.1
Tang520Tangut9.0
Tavt359Tai Viet5.2
Tayo380Tai Yo–
Telu340Telugu1.1
Teng290Tengwar–
Tfng120Tifinagh (Berber)4.1
Tglg370Tagalog (Baybayin, Alibata)3.2
Thaa170Thaana3.0
Thai352Thai1.1
Tibt330Tibetan2.0
Tirh326Tirhuta7.0
Tnsa275Tangsa14.0
Todr229Todhri16.0
Tols299Tolong Siki–
Toto294Toto14.0
Tutg341Tulu-Tigalari16.0
Ugar040Ugaritic4.0
Vaii470Vai5.1
Visp280Visible Speech–
Vith228Vithkuqi14.0
Wara262Warang Citi (Varang Kshiti)7.0
Wcho283Wancho12.0
Wole480Woleai–
Xpeo030Old Persian4.1
Xsux020Cuneiform, Sumero-Akkadian5.0
Yezi192Yezidi13.0
Yiii460Yi3.0
Zanb339Zanabazar Square (Zanabazarin Dörböljin Useg, Xewtee Dörböljin Bicig, Horizontal Square Script)10.0
Zinh994Code for inherited script–
Zmth995Mathematical notation3.2
Zsye993Symbols (Emoji variant)6.0
Zsym996Symbols1.1
Zxxx997Code for unwritten documents–
Zyyy998Code for undetermined script–
Zzzz999Code for uncoded script–
Four-letter script codes are ISO 15924, "Codes for the representation of names of scripts", maintained alongside the Unicode Standard - the full list lives at unicode.org/iso15924. The Z-prefixed codes never name a script: Zyyy (Common) marks text with no script choice, Zinh (Inherited) marks characters that take the script of what precedes them, Zxxx (Unwritten) marks a language with no writing system, and Zzzz (Unknown) is the explicit fallback. Bottom line: Hans and Hant split Chinese into Simplified and Traditional at the script level, so zh-Hans and zh-Hant are the correct way to distinguish the two written forms - and pa-Arab shows the same language written in two scripts (Punjabi in Arabic vs Gurmukhi pa-Guru). Tag companions: language codes table, HTML lang codes table, Unicode character inspector and Korean alphabet table.

Four-letter script codes answer a question language codes cannot: not which language is this, but which writing system renders it. Latn, Cyrl, Arab, Hans, Hant - these are ISO 15924 codes, and they slot into the middle of BCP 47 tags (zh-Hans, sr-Latn, pa-Arab) to disambiguate exactly how text is written. This table lists all 226 assigned script codes with their numeric equivalents and the Unicode version that first supported each script.

The standard exists because the same language can switch scripts with real consequences: Serbian flips between Cyrillic and Latin, Punjabi between Gurmukhi and Arabic script, Chinese between Simplified and Traditional Han. A language tag alone loses that distinction; the script subtag preserves it for fonts, spellcheckers and text shaping engines.

How to use

  1. Type a script name, four-letter code or numeric code to filter - '215', 'Latn' and 'Latin' all find the same row.
  2. Use the chips to jump to high-traffic families: the Han group (Hani, Hans, Hant, Hang), Latin, Arabic and Cyrillic, or the Z-prefixed special codes.
  3. Click any code to copy the four-letter abbreviation straight to the clipboard.

Frequently asked questions

What is the difference between Hans, Hant and Hani?

Hani is the umbrella code for the Han (Chinese ideographic) script. Hans is Han with Simplified variants, Hant is Han with Traditional variants. When you tag text zh-Hans or zh-Hant you are telling font and glyph systems which character forms to use - the difference between 万 and 萬. Use Hani only when the text genuinely mixes both or the variant is unknown.

What do Zyyy, Zinh, Zxxx and Zzzz mean?

The Z-prefixed codes never name a script - they are grammatical categories. Zyyy (Common, numeric 998) marks characters shared across scripts like digits and punctuation; Zinh (Inherited, 994) marks combining marks that take the script of the base character they attach to; Zxxx (Unwritten, 995) records that a language has no writing system; Zzzz (Unknown, 999) is the explicit fallback for untagged text. Alongside these sit Zmth (mathematical notation), Zsye (symbol emoji) and Zsym (miscellaneous symbols). All seven sit at the end of the alphabetical table.

Does the script code tell me the text direction?

No - ISO 15924 deliberately records script identity, not direction, and most scripts run left-to-right by default. Right-to-left behaviour comes from the Unicode bidirectional algorithm and per-character properties: Arab, Hebr, Thaa and a few others render RTL. Treating 'Arabic script' as synonymous with 'right-to-left' breaks for cases like Uighur-Arabic in older orthographies and for embedded numbers, which stay LTR inside RTL runs.

Why do some codes have a Unicode version and others do not?

The Unicode column shows when the Unicode Standard first encoded the script - Latn, Cyrl and Grek date to Unicode 1.1 (1993), while Vithkuqi and Old Uyghur arrived in 14.0 (2021) and Toto, Tangsa and Cypro-Minoan in 15.0 (2022). Codes without a version are not yet encoded in Unicode at all - they are assigned in ISO 15924 for registry and reference purposes, awaiting a future encoding proposal.

Related tools