Script tags (OpenType 1.8)

Script tags generally correspond to a Unicode script. However, the associations between them may not always be one-to-one, and the OFF/OT tags are not guaranteed to be the same as Unicode Script property-value aliases or ISO 15924 script IDs. Since the development of OFF/OT script tags predates the ISO 15924 or Unicode Script property, the rules for script tags defined in this document may not always be the same as rules for ISO 15924 script IDs. The OFF/OT script tags can also correlate with a particular OFF/OT layout implementation, with the result that more than one script tag may be registered for a given Unicode script (e.g. 'deva' and 'dev2').

All tags are 4-byte character strings composed of a limited set of ASCII characters in the 0x20-0x7E range. A script tag can consist of four or fewer lowercase letters. If a script tag consists less than four lowercase letters, the letters are followed by the requisite number of spaces (0x20), each consisting of a single byte.

Script Script Tag
Adlam adlm
Ahom ahom
Anatolian Hieroglyphs hluw
Arabic arab
Armenian armn
Avestan avst
Balinese bali
Bamum bamu
Bassa Vah bass
Batak batk
Bengali beng
Bengali v.2 bng2
Bhaiksuki bhks
Bopomofo bopo
Brahmi brah
Braille brai
Buginese bugi
Buhid buhd
Byzantine Music byzm
Canadian Syllabics cans
Carian cari
Caucasian Albanian aghb
Chakma cakm
Cham cham
Cherokee cher
CJK Ideographic hani
Coptic copt
Cypriot Syllabary cprt
Cyrillic cyrl
Default DFLT
Deseret dsrt
Devanagari deva
Devanagari v.2 dev2
Duployan dupl
Egyptian Hieroglyphs egyp
Elbasan elba
Ethiopic ethi
Georgian geor
Glagolitic glag
Gothic goth
Grantha gran
Greek grek
Gujarati gujr
Gujarati v.2 gjr2
Gurmukhi guru
Gurmukhi v.2 gur2
Hangul hang
Hangul Jamo jamo
Hanunoo hano
Hatran hatr
Hebrew hebr
Hiragana kana
Imperial Aramaic armi
Inscriptional Pahlavi phli
Inscriptional Parthian prti
Javanese java
Kaithi kthi
Kannada knda
Kannada v.2 knd2
Katakana kana
Kayah Li kali
Kharosthi khar
Khmer khmr
Khojki khoj
Khudawadi sind
Lao lao
Latin latn
Lepcha lepc
Limbu limb
Linear A lina
Linear B linb
Lisu (Fraser) lisu
Lycian lyci
Lydian lydi
Mahajani mahj
Malayalam mlym
Malayalam v.2 mlm2
Mandaic, Mandaean mand
Manichaean mani
Marchen marc
Mathematical Alphanumeric Symbols math
Meitei Mayek (Meithei, Meetei) mtei
Mende Kikakui mend
Meroitic Cursive merc
Meroitic Hieroglyphs mero
Miao plrd
Modi modi
Mongolian mong
Mro mroo
Multani mult
Musical Symbols musc
Myanmar mymr
Myanmar v.2 mym2
Nabataean nbat
Newa newa
New Tai Lue talu
N’Ko nko
Odia (formerly Oriya) orya
Odia v.2 (formerly Oriya v.2) ory2
Ogham ogam
Ol Chiki olck
Old Italic ital
Old Hungarian hung
Old North Arabian narb
Old Permic perm
Old Persian Cuneiform xpeo
Old South Arabian sarb
Old Turkic, Orkhon Runic orkh
Osage osge
Osmanya osma
Pahawh Hmong hmng
Palmyrene palm
Pau Cin Hau pauc
Phags-pa phag
Phoenician phnx
Psalter Pahlavi phlp
Rejang rjng
Runic runr
Samaritan samr
Saurashtra saur
Sharada shrd
Shavian shaw
Siddham sidd
Sign Writing sgnw
Sinhala sinh
Sora Sompeng sora
Sumero-Akkadian Cuneiform xsux
Sundanese sund
Syloti Nagri sylo
Syriac syrc
Tagalog tglg
Tagbanwa tagb
Tai Le tale
Tai Tham (Lanna) lana
Tai Viet tavt
Takri takr
Tamil taml
Tamil v.2 tml2
Tangut tang
Telugu telu
Telugu v.2 tel2
Thaana thaa
Thai thai
Tibetan tibt
Tifinagh tfng
Tirhuta tirh
Ugaritic Cuneiform ugar
Vai vai
Warang Citi wara
Yi yi

When the ScriptList table is searched for a script, and no entry is found, and there is an entry for the 'DFLT' script, then this entry must be used. Furthermore, the Script table for the 'DFLT' script must have a non-NULL DefaultLangSys and a LangSysCount equal to 0; in other words, there is only a default language for the default script.