Script (Unicode): Difference between revisions

Content deleted Content added
added ref for definition of script and reference to UAX #24
External links: Updated URL for SEI website
 
(187 intermediate revisions by 81 users not shown)
Line 1:
{{Mergeshort description|MappingSubset of Unicode characters|date=May 2007in Unicode}}
{{More citations needed|date=June 2024}}
{{Unicode_scripts}}
{{about|writing systems found in Unicode|the "Script" style of Latin letters in Unicode|Mathematical Alphanumeric Symbols|and|Script typeface}}
In [[Unicode]], a '''script''' is a collection of letters and other written signs used to represent textual information in one or more writing systems.<ref>[http://unicode.org/glossary/ Glosary of Unicode Terms]</ref>
<!-- [[File:Armenian language in the Armenian alphabet.svg|thumb|[[Armenian script]]]] -->
For example the [[Latin characters in Unicode|Latin]] script supports alphabets such as: [[English language|English]], [[French language|French]], [[Vietnamese language|Vietnamese]] and many others. Some scripts support one and only one writing system and language, for example: [[Armenian language|Armenian]]. Other scripts, like [[Latin characters in Unicode|Latin]], support many different writing systems: [[English alphabet|English]], [[French alphabet|French]], [[German alphabet|German]], [[Italian alphabet|Italian]], and [[Latin alphabet|Latin]] to name just some of the alphabets supported by the Latin script. Some languages also make use of multiple alternate writing systems. [[Turkish language|Turkish]], for example, used [[Ottoman Turkish alphabet|Arabic]] script before the 20th century and transitioned to Latin in the early part of the 20th century. For a list of languages supported by each script see the [[list of languages by writing system]].
{{ISO 15924/unicode-script-illustration}}
 
In [[Unicode]], a '''script''' is a collection of [[Letter (alphabet)|letter]]s and other written signs used to represent textual information in one or more [[writing system]]s.<ref>{{cite web|url=http://unicode.org/glossary/|title=Glossary|website=unicode.org}}</ref> Some scripts support only one writing system and [[Written language|language]], for example, [[Armenian language|Armenian]]. Other scripts support many different writing systems; for example, the [[Latin script in Unicode|Latin script]] supports [[English alphabet|English]], [[French alphabet|French]], [[German alphabet|German]], [[Italian alphabet|Italian]], [[Vietnamese language|Vietnamese]], [[Latin alphabet|Latin]] itself, and several other languages. Some languages make use of multiple alternate writing systems and thus also use several scripts; for example, in [[Turkish language|Turkish]], the [[Ottoman Turkish alphabet|Arabic]] script was used before the 20th century but transitioned to Latin in the early part of the 20th century. More or less complementary to scripts are [[Unicode symbols|symbols]] and Unicode [[control character]]s.
When multiple languages make use of the same script, there are frequently some differences: particularly in diacritics and other marks. For example, Swedish and English both use the Latin script. However, [[Swedish alphabet|Swedish]] includes the character ‘å’ (sometimes called a “Swedish O”) while English has no such character. Nor does English make use of the diacritic combining circle above for any character. In general the languages sharing the same scripts share many of the same characters. Despite these peripheral differences in the Swedish and English writing systems they are said to use the same Latin script. So the Unicode abstraction of scripts is a basic organizing technique. The differences between different alphabets or writing systems remain and are supported through Unicode’s flexible scripts, combining marks and collation algorithms.
 
WhileThe allunified characters[[Combining haveDiacritical the property of belonging to a script, many characters, such as symbols, indicate “common” or “inherited”Marks for their script property. The unified Symbols|diacritical characterscharacter]]s and unified [[General Punctuation|punctuation characters]] frequently have the “common”"common" or “inherited”"inherited" script property. However, the individual scripts often have their own [[punctuation]] and diacritics.[[diacritic]]s, so Sothat many scripts include not only letters, but also diacritic and other marks, punctuation, numerals and even their own idiosyncratic symbols and [[Space (punctuation)|space]] characters.
 
Unicode {{Unicode version|version=16.0}} defines 168 separate scripts, including 99 modern scripts and 69 ancient or historic scripts.<ref>{{cite web|url=https://www.unicode.org/Public/UNIDATA/Scripts.txt|title=Unicode Character Database: Scripts|website=unicode.org}}</ref><ref>{{cite book | title = The Unicode Standard, Version 15.0 | chapter = Chapter 14: Additional Ancient and Historic Scripts | publisher = Unicode, Inc | date = September 2022 | ___location = Mountain View, CA | url = https://www.unicode.org/versions/Unicode15.0.0/ch14.pdf | isbn = 978-1-936213-32-0 }}</ref> More scripts are in the process for encoding or have been tentatively allocated for encoding in roadmaps.<ref>https://www.unicode.org/roadmaps/ Roadmaps to Unicode</ref>
Unicode already includes over 60 scripts supporting hundreds or even thousands of languages throughout the World. Unicode is actively working on many more as indicated by its [[Unicode#Unicode roadmap|roadmap]].
 
== Definition and classification ==
== Writing system ==
 
When multiple languages make use of the same script, there are frequently some differences, particularly in diacritics and other marks. For example, Swedish and English both use the Latin script. However, [[Swedish alphabet|Swedish]] includes the character ''[[å]]'' (sometimes called a Swedish ''O''), while English has no such character. Nor does English make use of the diacritic ''[[Ring (diacritic)#Overring|combining ring above]]'' for any character. In general, the languages sharing the same scripts share many of the same characters. Despite these peripheral differences in the Swedish and English writing systems, they are said to use the same Latin script. Thus, the Unicode abstraction of scripts is a basic organizing technique. The differences among different alphabets or writing systems remain and are supported through Unicode’s flexible scripts, combining marks and collation algorithms.
{{main|Writing system}}
 
=== Script versus writing system ===
'''Writing system''' is sometimes treated as a synonym for script. However it also can be used as the specific concrete writing system supported by a script. For example the Vietnamese writing system is supported by the Latin script. Most writing systems can be broadly divided into several categories: '''logographic''', '''syllabic''', '''alphabetic''' (or '''segmental'''), '''abugida''', '''abjad''' and '''featural'''; however, all features of any of these may be found in any given writing system in varying proportions, often making it difficult to purely categorize a system. The term '''complex system''' is sometimes used to describe those where the admixture makes classification problematic.
 
''[[Writing system]]'' is sometimes treated as a synonym for "script". However, it also can be used as the specific concrete writing system supported by a script. For example, the [[Vietnamese alphabet|Vietnamese writing system]] is supported by the Latin script. A writing system may also cover more than one script; for example, the Japanese writing system makes use of the [[Kanji|Han]], [[Hiragana]] and [[Katakana]] scripts.
{| class="prettytable"
! Type of writing system !! What each symbol represents !! Example
|-
| [[Logogram|Logographic]] || [[morpheme]] || [[Chinese character]]s
|-
| [[Syllabary|Syllabic]] || syllable || Japanese ''[[kana]]''
|-
| [[Alphabet]]ic || [[phoneme]] (consonant or vowel) || [[Latin alphabet]]
|-
| [[Abugida]] || phoneme (consonant+vowel) || Indian ''[[Devanāgarī]]''
|-
| [[Abjad]] || phoneme (consonant) || [[Arabic alphabet]]
|-
| [[Featural alphabet|Featural]] || phonetic feature || Korean ''[[hangul]]''
|}
 
Most writing systems can be broadly divided into several categories: '''logographic''', '''syllabic''', '''alphabetic''' (or '''segmental'''), '''abugida''', '''abjad''' and '''featural'''; however, all features of any of these may be found in any given writing system in varying proportions, often making it difficult to purely categorize a system. The term ''[[complex system]]'' is sometimes used to describe those where the admixture makes classification problematic.
''See also'': [[phonemic orthography|''phonemic'' and ''phonetic'' orthography]].
 
Unicode supports all of these types of writing systems through its numerous scripts. Unicode also adds further properties to characters to help differentiate the various characters and the ways they behave within Unicode text -processing algorithms.
 
=== {{anchor|Common and inherited scripts}}{{anchor|Special script property values}}Special script property values ===
In addition to explicit or specific script properties, Unicode uses three special values:<ref name=Unicode_script_property>{{cite web|url=https://www.unicode.org/reports/tr24/|title=UAX #24: Unicode Script Property|website=www.unicode.org}}</ref>
;Common: Unicode can assign a character in the [[Universal Character Set|UCS]] to a single script only. However, many characters—those that are not part of a formal natural-language writing system or are unified across many writing systems—may be used in more than one script (for example, currency signs, symbols, numerals and punctuation marks). In these cases Unicode defines them as belonging to the "common" script ([[ISO 15924]] code "Zyyy").
;Inherited: Many diacritics and non-spacing combining characters may be applied to characters from more than one script. In these cases Unicode assigns them to the "inherited" script (ISO 15924 code Zinh), which means that they have the same script class as the base character with which they combine, and so in different contexts they may be treated as belonging to different scripts. For example, {{unichar|0308|Combining Diaeresis|cwith=}} may combine either with {{unichar|0065|Latin Small Letter E}} to create a Latin ''ë'' or with {{unichar|0435|Cyrillic Small Letter IE}} for the [[Cyrillic alphabet|Cyrillic]] ''ё''. In the former case, it inherits the Latin script of the base character, whereas in the latter case, it inherits the Cyrillic script of the base character.
;Unknown: The value of "unknown" script (ISO 15924 code Zzzz) is given to unassigned, private-use, noncharacter, and surrogate code points.
 
== TableCharacter ofcategories Unicodewithin scripts ==
Unicode provides a general category property for each character. So in addition to belonging to a script every character also has a general category. Typically scripts include letter characters including: uppercase letters, lowercase letters and modifier letters. Some characters are considered titlecase letters for a few [[Precomposed character|precomposed]] ligatures such as Dz (U+01F2). Such titlecase ligatures are all in the Latin and Greek scripts and are all [[Unicode compatibility characters |compatibility characters]], and therefore Unicode discourages their use by authors. It is unlikely that new titlecase letters will be added in the future.
 
Most writing systems do not differentiate between uppercase and lowercase letters. For those scripts all letters are categorized as "other letter" or "modifier letter". Ideographs such as Unihan ideographs are also categorized as "other letters". A few scripts do differentiate between uppercase and lowercase however: Latin, Cyrillic, Greek, Armenian, Georgian, and Deseret. Even for these scripts there are some letters that are neither uppercase nor lowercase.
The following table lists the 75 scripts that are defined in Unicode 5.1.<ref>[http://www.unicode.org/Public/UNIDATA/Scripts.txt Unicode Character Database : Scripts]</ref>
 
Scripts can also contain any other general category character such as '''marks''' (diacritic and otherwise), '''numbers''' (numerals), '''punctuation''', '''separators''' (word separators such as spaces), '''symbols''' and non-graphical '''format''' characters. These are included in a particular script when they are unique to that script. Other such characters are generally unified and included in the punctuation or diacritic blocks. However, the bulk of characters in any script (other than the common and inherited scripts) are letters.
{| class="wikitable"
|-
! Unicode script name
! Relevant Wikipedia article(s)
! [[ISO 15924]] code<ref>[http://www.unicode.org/iso15924/ ISO 15924 Registration Authority]</ref>
! Number of characters
(as of Unicode 5.1)
! Version of Unicode first encoded
|-
| Common
|
| Zyyy
| 5,178
|
|-
| Inherited
|
| Qaai
| 496
|
|-
| Arabic
| [[Arabic alphabet]]
| Arab
| 994
| 1.0
|-
| Armenian
| [[Armenian alphabet]]
| Armn
| 90
| 1.0
|-
| Balinese
| [[Balinese script]]
| Bali
| 121
| 5.0
|-
| Bengali
| [[Bengali script]]
| Beng
| 91
| 1.0
|-
| Bopomofo
| [[Zhuyin]]
| Bopo
| 65
| 1.0
|-
| Braille
| [[Braille]]
| Brai
| 256
| 3.0
|-
| Buginese
| [[Lontara script]]
| Bugi
| 30
| 4.1
|-
| Buhid
| [[Buhid script]]
| Buhd
| 20
| 3.2
|-
| Canadian Aboriginal
| [[Canadian Aboriginal syllabics]]
| Cans
| 630
| 3.0
|-
| Carian
| [[Carian script]]
| Cari
| 49
| 5.1
|-
| Cham
| [[Cham alphabet]]
| Cham
| 83
| 5.1
|-
| Cherokee
| [[Cherokee syllabary]]
| Cher
| 85
| 3.0
|-
| Coptic
| [[Coptic alphabet]]
| Copt
| 128
| 1.0 (disunified from Greek in 4.1)
|-
| Cuneiform
| [[Cuneiform script]]
| Xsux
| 982
| 5.0
|-
| Cypriot
| [[Cypriot syllabary]]
| Cprt
| 55
| 4.0
|-
| Cyrillic
| [[Cyrillic alphabet]]
| Cyrl
| 403
| 1.0
|-
| Deseret
| [[Deseret alphabet]]
| Dsrt
| 80
| 3.1
|-
| Devanagari
| [[Devanagari script]]
| Deva
| 109
| 1.0
|-
| Ethiopic
| [[Ge'ez alphabet]]
| Ethi
| 461
| 3.0
|-
| Georgian
| [[Georgian alphabet]]
| Geor
| 120
| 1.0
|-
| Glagolitic
| [[Glagolitic alphabet]]
| Glag
| 94
| 4.1
|-
| Gothic
| [[Gothic alphabet]]
| Goth
| 27
| 3.1
|-
| Greek
| [[Greek alphabet]]
| Grek
| 513
| 1.0
|-
| Gujarati
| [[Gujarati script]]
| Gujr
| 83
| 1.0
|-
| Gurmukhi
| [[Gurmukhi script]]
| Guru
| 79
| 1.0
|-
| Han
| [[Chinese character]], [[Kanji]], [[Hanja]], [[Hán tự]]
| Hani
| 71,578
| 1.0
|-
| Hangul
| [[Hangul]]
| Hang
| 11,619
| 1.0 (relocated in 2.0)
|-
| Hanunoo
| [[Hanunó'o script]]
| Hano
| 21
| 3.2
|-
| Hebrew
| [[Hebrew alphabet]]
| Hebr
| 133
| 1.0
|-
| Hiragana
| [[Hiragana]]
| Hira
| 89
| 1.0
|-
| Kannada
| [[Kannada script]]
| Knda
| 86
| 1.0
|-
| Katakana
| [[Katakana]]
| Kana
| 164
| 1.0
|-
| Kayah Li
| [[Kayah Li script]]
| Kali
| 48
| 5.1
|-
| Kharoshthi
| [[Kharoṣṭhī]]
| Khar
| 65
| 4.1
|-
| Khmer
| [[Khmer script]]
| Khmr
| 146
| 3.0
|-
| Lao
| [[Lao script]]
| Laoo
| 65
| 1.0
|-
| Latin
| [[Latin alphabet]]
| Latn
| 1,201
| 1.0
|-
| Lepcha
| [[Lepcha script]]
| Lepc
| 74
| 5.1
|-
| Limbu
| [[Limbu script]]
| Limb
| 66
| 4.0
|-
| Linear B
| [[Linear B]]
| Linb
| 211
| 4.0
|-
| Lycian
| [[Lycian script]]
| Lyci
| 29
| 5.1
|-
| Lydian
| [[Lydian script]]
| Lydi
| 27
| 5.1
|-
| Malayalam
| [[Malayalam script]]
| Mlym
| 95
| 1.0
|-
| Mongolian
| [[Mongolian script]], [[Clear script]], [[Manchu alphabet]]
| Mong
| 156
| 3.0
|-
| Myanmar
| [[Burmese script]]
| Mymr
| 156
| 3.0
|-
| N'Ko
| [[N'Ko]]
| Nkoo
| 59
| 5.0
|-
| New Tai Lue
| [[New Tai Lue]]
| Talu
| 80
| 4.1
|-
| Ogham
| [[Ogham]]
| Ogam
| 29
| 3.0
|-
| Ol Chiki
| [[Ol Chiki script]]
| Olck
| 48
| 5.1
|-
| Old Italic
| [[Old Italic alphabet]]
| Ital
| 35
| 3.1
|-
| Old Persian
| [[Old Persian cuneiform script]]
| Xpeo
| 50
| 4.1
|-
| Oriya
| [[Oriya script]]
| Orya
| 84
| 1.0
|-
| Osmanya
| [[Osmanya script]]
| Osma
| 40
| 4.0
|-
| Phags-pa
| [[Phags-pa script]]
| Phag
| 56
| 5.0
|-
| Phoenician
| [[Phoenician alphabet]]
| Phnx
| 27
| 5.0
|-
| Rejang
| [[Rejang script]]
| Rjng
| 37
| 5.1
|-
| Runic
| [[Runic alphabet]]
| Runr
| 78
| 3.0
|-
| Saurashtra
| [[Saurashtra script]]
| Saur
| 81
| 5.1
|-
| Shavian
| [[Shavian alphabet]]
| Shaw
| 48
| 4.0
|-
| Sinhala
| [[Sinhala script]]
| Sinh
| 80
| 3.0
|-
| Sundanese
| [[Sundanese script]]
| Sund
| 55
| 5.1
|-
| Syloti Nagri
| [[Sylheti Nagari]]
| Sylo
| 44
| 4.1
|-
| Syriac
| [[Syriac alphabet]]
| Syrc
| 77
| 3.0
|-
| Tagalog
| [[Baybayin]]
| Tglg
| 20
| 3.2
|-
| Tagbanwa
| [[Tagbanwa script]]
| Tagb
| 18
| 3.2
|-
| Tai Le
| [[Tai Nüa language#Writing_system|Tai Nüa language]]
| Tale
| 35
| 4.0
|-
| Tamil
| [[Tamil script]]
| Taml
| 72
| 1.0
|-
| Telugu
| [[Telugu script]]
| Telu
| 93
| 1.0
|-
| Thaana
| [[Tāna]]
| Thaa
| 50
| 3.0
|-
| Thai
| [[Thai alphabet]]
| Thai
| 86
| 1.0
|-
| Tibetan
| [[Tibetan script]]
| Tibt
| 201
| 1.0 (removed in 1.1 and reintroduced in 2.0)
|-
| Tifinagh
| [[Tifinagh]]
| Tfng
| 55
| 4.1
|-
| Ugaritic
| [[Ugaritic alphabet]]
| Ugar
| 31
| 4.0
|-
| Vai
| [[Vai syllabary]]
| Vaii
| 300
| 5.1
|-
| Yi
| [[Yi script]]
| Yiii
| 1,220
| 3.0
|}
 
== <span class="anchor" id="List of scripts in Unicode"></span> List of encoded scripts ==
== Character categories within scripts ==
{{As of|September 2024|alt=As of version 16.0}}, Unicode defines 168 scripts (called "Alias" or "Property value alias") based on the ISO 15924 list. In addition, Unicode assigns the name "Common" to ISO 15924's {{code|Zyyy}} code for undetermined scripts, "Inherited" to ISO 15924's {{code|Zinh}} code for inherited scripts, and "Unknown" to ISO 15924's {{code|Zzzz}} code for uncoded scripts. There are script codes defined by ISO 15924 but are not used in Unicode, including {{code|Zsym}} (Symbols) and {{code|Zmth}} (Mathematical notation).
{{UCS_characters}}
{{ISO 15924 script codes and related Unicode data|state=uncollapsed}}
Unicode provides a general category property for each character. So in addition to belonging to a script every character also has a general category. Typically scripts include letter characters including: uppercase letters, lowercase letter and modifier letters. Some characters are considered titlecase letters for a few [[Precomposed character|precomposed]] ligatures such as Dz (U+01F2). Such titlecase ligatures are all in the Latin and Greek scripts and are all compatibility characters and therefore Unicode discourages their use by authors. Its unlikely newt titlecase letters will be added in the future.
 
== Missing scripts in Unicode ==
Most writing systems do not differentiate between uppercase and lowercase letters. For those scripts all letters are categorized as “other letter” or “modifier letter”. Ideographs such as Unihan ideographs are also categorized as “other letters”. A few scripts do differentiate between uppercase and lowercase however: Latin, Cyrillic, Greek, Armenian, Georgian, and Deseret. Even for these scripts there are some letters that are nether uppercase nor lowercase.
The project Missing Scripts—with contributors from the [[Mainz University of Applied Sciences]], the L’Atelier national de recherche typographique (ANRT) in [[Nancy, France|Nancy]], and the [[University of California, Berkeley]]—has compiled a list of 131 scripts that have not yet been encoded in ''The Unicode Standard'', out of a total of 294 recognized scripts according to the current state of research.<ref>{{Cite web |title=The World's Writing Systems |url=https://www.worldswritingsystems.org/ |access-date=2024-10-04 |website=www.worldswritingsystems.org}}</ref>
 
==See also==
Scripts can also contain any other general category character such as '''marks''' (diacritic and otherwise), '''numbers''' (numerals), '''punctuation''', '''separators''' (word separators such as spaces), '''symbols''' and non-graphical '''format''' characters. These are included in a particular script when they are unique to that scripts. Other such characters are generally unified and included in the punctuation or diacritic blocks. However, the bulk of characters in any script (other than the common and inherited scripts) are letters.
*[[Latin script in Unicode]]
*[[Unicode characters]]
*[[Unicode symbols]]
*[[Phonemic orthography|Phonemic and phonetic orthography]]
 
==References==
== Common and inherited script ==
{{Reflist}}
 
==External links==
Strictly speaking, Unicode assigns every character in the [[UCS]] to a script (one and only one). However, many characters — those that are not part of a formal natural language writing system or are unified across many writing systems — belong to the '''common''' script. Included in the common script are most numerals, most symbols including music notation, currency symbols and so forth. In addition, many diacritics and non-spacing combining characters are assigned to the '''inherited''' script. For these characters their script membership depends on the script of the character with which they combine.
* [https://sei.berkeley.edu/ Script Encoding Initiative], A project at UC Berkeley, USA, working to get more scripts included in the Unicode standard.
 
* [https://www.worldswritingsystems.org The World’s Writing Systems], An overview of all 294 known writing systems, each with a typographic reference glyph and their Unicode status.
==See also==
*[[Mapping of Unicode characters]]
*[[:Category:Unicode scripts]]
 
{{Unicode navigation}}
== References ==
{{Writing systems}}
*[http://www.unicode.org/versions/Unicode5.0.0/ The Unicode Standard 5.0]
*[http://www.unicode.org/reports/tr24/ Unicode Standard Annex #24 : Unicode Script Property]
 
[[Category:Unicode|Scripts]]