ISO 15924
ISO 15924, Codes for the representation of names of scripts, defines two sets of codes for a number of writing systems (scripts). Each script is given both a four-letter code and a numeric one.
Script is defined as "set of graphic characters used for the written form of one or more languages". 

Where possible the codes are derived from ISO 639-2 where the name of a script and the name of a language using the script are identical (example: Gujarātī ISO 639 guj, ISO 15924 Gujr). Preference is given to the 639-2 Bibliographical codes, which is different from the otherwise often preferred use of the Terminological codes.

4-letter ISO 15924 codes are incorporated into the Language Subtag Registry for IETF language tags and so can be used in file formats that make use of such language tags. For example, they can be used in HTML and XML to help Web browsers determine which typeface to use for foreign text. This way one could differentiate, for example, between Serbian written in the Cyrillic (sr-Cyrl) or Latin (sr-Latn) script, or mark romanized text as such.

Maintenance
ISO has appointed the Unicode Consortium as the Registration Authority (RA) for the standard. In 2004, the RA appointed Michael Everson to act as Registrar. The Registrar works with a Joint Advisory Committee (JAC) in developing and implementing the standard. The JAC contains six members: the Registrar, one member from the Library of Congress, one from Standards Norway, one from the French Encyclopaedia Universalis, an officer of Unicode, and a member of Unicode. These individuals represent the interests of the ISO 15924 RA, the ISO 639-2 RA, ISO Technical Committee 37, ISO Technical Committee 46, and the ISO Coded Character Set Sub-Committee, ISO/IEC JTC1/SC2.

Script codes

Numeric ranges
000–099 Hieroglyphic and cuneiform scripts
100–199 Right-to-left alphabetic scripts
200–299 Left-to-right alphabetic scripts
300–399 Alphasyllabic scripts
400–499 Syllabic scripts
500–599 Ideographic scripts
600–699 Undeciphered scripts
700–799 Shorthands and other notations
800–899 (unassigned)
900–999 Private use, alias, special codes

Special codes
Qaaa–Qabx (900–949): 50 Codes reserved for private use.
Zsye 993: Emoji
Zinh 994: Code for inherited script
Zmth 995: Mathematical notation
Zsym 996: Symbols
Zxxx 997: Code for unwritten languages
Zyyy 998: Code for undetermined script
Zzzz 999: Code for uncoded script

Exceptionally reserved codes

Two four letter codes are reserved at the request of the Common Locale Data Repository Project (CLDR):
Root: Reserved for the language-neutral base of the CLDR locale tree
True: Reserved for the boolean value "true"

List of codes

This list of codes is from the ISO 15924 standard.

Relations to other standards
The following standards are referred to as indispensable by ISO 15924.
 ISO 639-2:1998 Codes for the representation of names of languages — Part 2: Alpha-3 code
 ISO/IEC 9541-1:1991 Information technology — Font information interchange — Part 1: Architecture
 ISO/IEC 10646-1:2000 Information technology — Universal Multiple-Octet Coded Character Set (UCS)

For definition of font and glyph the standard refers to
 ISO/IEC 9541-1:1991

Around 140 scripts are defined in Unicode. Through a linkpin called "Property Value Alias", Unicode has made a 1:1 connection between a script defined, and its ISO 15924 standard. See Script (Unicode).

References

External links
 ISO 15924:2004
 ISO 15924 Registration Authority (Unicode)
 Official ISO 15924 code lists
 Overview of changes in time

15924
Writing systems
 
2004 introductions