HOME

TheInfoList



OR:

The
Unicode Standard Unicode, formally The Unicode Standard,The formal version reference is is an information technology standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems. The standard, ...
assigns various properties to each Unicode character and
code point In character encoding terminology, a code point, codepoint or code position is a numerical value that maps to a specific character. Code points usually represent a single grapheme—usually a letter, digit, punctuation mark, or whitespace—but ...
. The properties can be used to handle characters (code points) in processes, like in line-breaking, script direction right-to-left or applying controls. Some "character properties" are also defined for code points that have no character assigned and code points that are labeled like "<not a character>". The character properties are described in Standard Annex #44. Properties have levels of forcefulness: normative, informative, contributory, or provisional. For simplicity of specification, a character property can be assigned by specifying a continuous range of code points that have the same property.


Semantic elements

Properties are displayed in the following order:
ode An ode (from grc, ᾠδή, ōdḗ) is a type of lyric poetry. Odes are elaborately structured poems praising or glorifying an event or individual, describing nature intellectually as well as emotionally. A classic ode is structured in three majo ...
ame c c c ecomposition;; v m lias;;; *'alias' = corrected name *'bc' = bidi (bidirectional) category , R etc*'bm' = bidi mirrored or Y*'cc' = combining class osition of diacritic*decomposition = letter + diacritic, ligature X Y, superscript X, font X, initial X, medial X, final X, isolated X, vertical X, etc. *'gc' = general category etter, symbol, digit, punctuation, case behavior, etc.*'nv' = numeric value f a digit


Name

A Unicode character is assigned a unique Name (na). The name is composed of uppercase letters A–Z, digits 0–9, hyphen-minus (-) and space ( ). Some sequences are excluded: names beginning with a space or hyphen, names ending with a space or hyphen, repeated spaces or hyphens, and space after hyphen are not allowed. The name is guaranteed to be unique within Unicode, and can be used to identify a code point and its character. Ideographic characters, of which there are tens of thousands, are named in the pattern "-''hhhh''". For example, . Formatting characters are named too: . The following classes of code point do not have a Name (na=""): Controls (General Cc), Private use (Co), Surrogate (Cs), Non-characters (Cn) and Reserved (Cn). They may be referenced, informally, by a generic or specific meta-name, called "Code Point Labels": . Since these labels contain <>-brackets, they can never appear as a Name, which prevents confusion.


Version 1.0 names

In version 2.0 of Unicode, many names were changed. From then on the rule "a name will never change" came into effect, including the strict (normative) use of alias names. Disused version 1.0-names were moved to the property Alias, to provide some backward compatibility.


Character name alias

Starting from Unicode version 2.0, the published name for a code point will never change. Therefore, in the event of a character name being misspelled or if the character name is completely wrong or seriously misleading, a formal Character Name Alias may be assigned to the character, and this alias may be used by applications instead of the actual defective character name. For example, has the character name alias "PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRACKET" in order to mitigate the misspelling of "bracket" as "brakcet" in the actual character name; has the character name alias "YI SYLLABLE ITERATION MARK" because contrary to the character name it does not have a fixed syllabic value. In addition to character name aliases which are corrections to defective character names, some characters are assigned aliases which are alternative names or abbreviations. Five types of character name aliases are defined in the Unicode Standard: * Correction: corrections for misspelled or seriously incorrect character names; * Control:
ISO 6429 The C0 and C1 control code or control character sets define control codes for use in text by computer systems that use ASCII and derivatives of ASCII. The codes represent additional information about the text, such as the position of a cursor, ...
names for C0 and C1 control functions (which are not assigned character names in the Unicode Standard); * Alternate: alternative names for some format characters (only U+FEFF "ZERO WIDTH NO-BREAK SPACE" which has the alias "BYTE ORDER MARK"); * Figment: Documented labels for some C1 control code functions which are not actual names in any standard; * Abbreviation: Abbreviations or acronyms for control codes, format characters, spaces, and variation selectors. All formal character name aliases follow the rules for permissible character names, and are guaranteed to be unique within both the character name alias and the character name namespaces (for this reason, the ISO 6429 name "BELL" is not defined as an alias for U+0007 because U+1F514 is named "BELL"). As of Unicode version 12.1, twenty-eight formal character name aliases are defined as corrections for defective character names. These are listed
below Below may refer to: *Earth *Ground (disambiguation) *Soil *Floor *Bottom (disambiguation) *Less than *Temperatures below freezing *Hell or underworld People with the surname *Ernst von Below (1863–1955), German World War I general *Fred Below ( ...
. Apart from these normative names, informal names may be shown in the Unicode code charts. These are other commonly used names for a character, and do not have the same character restriction. These informal names are not guaranteed to be unique, and may be changed or removed in later versions of the standard.


General Category

Each code point is assigned a value for General Category. This is one of the character properties that are also defined for unassigned code points and code points that are defined "not a character".


Punctuation

Characters have separate properties to denote they are a
punctuation Punctuation (or sometimes interpunction) is the use of spacing, conventional signs (called punctuation marks), and certain typographical devices as aids to the understanding and correct reading of written text, whether read silently or aloud. A ...
character. The properties all have a Yes/No values: Dash, Quotation_Mark, Sentence_Terminal, Terminal_Punctuation.


Whitespace

Whitespace is a commonly used concept for a typographic effect. Basically it covers invisible characters that have a spacing effect in rendered text. It includes spaces, tabs, and new line formatting controls. In Unicode, such a character has the property set "WSpace=yes". In version 15.0, there are 25 whitespace characters.


Other general characteristics

Ideographic, alphabetic, noncharacter.


Combining class

Some common codes: :0 = spacing letter, symbol or modifier (e.g. a, (, ʰ) :1 = overlay :6 = Han reading (CJK diacritic reading marks) :7 = nukta (diacritic
nukta ় The nuqta (Hindi–Urdu: //, fa, , noqte; from ar, نقطة, nuqṭa, dot; sometimes also spelled nukta) is a diacritic mark that was introduced in Devanagari and some other Indic scripts to represent sounds not present in the original scrip ...
in
Brahmic script The Brahmic scripts, also known as Indic scripts, are a family of abugida writing systems. They are used throughout the Indian subcontinent, Southeast Asia and parts of East Asia. They are descended from the Brahmi script of ancient India ...
s) :8 = kana voicing marks :9 =
virama Virama ( ्) is a Sanskrit phonological concept to suppress the inherent vowel that otherwise occurs with every consonant letter, commonly used as a generic term for a codepoint in Unicode, representing either # halanta, hasanta or explicit vir� ...
10–199 = various fixed-position classes Marks which attach to the base letter: :200 = attached at bottom left :202 = attached directly below (e.g. cedilla on ç) :204 = attached at bottom right :208 = attached to left :210 = attached to right :212 = attached to top left :214 = attached directly above :216 = attached at top right Marks which do not attach to the base letter: :218 = bottom left :220 = directly below (e.g. ring on n̥) :222 = below right :224 = left :226 = right :228 = above left :230 = above (e.g. acute accent on á) :232 = above right :233 = double below (subtends two bases) :234 = double above (extends two bases) :240 =
iota subscript The iota subscript is a diacritic mark in the Greek alphabet shaped like a small vertical stroke or miniature iota placed below the letter. It can occur with the vowel letters eta , omega , and alpha . It represents the former presence of an o ...
(only that Greek diacritic)


Display-related properties

Shaping, width.


Bidirectional writing

Six character properties pertain to bi-directional writing: Bidi_Class, Bidi_Control, Bidi_Mirrored, Bidi_Mirroring_Glyph, Bidi_Paired_Bracket and Bidi_Paired_Bracket_Type. One of Unicode's major features is support of bi-directional (''Bidi'') text display right-to-left (R-to-L) and left-to-right (L-to-R). The Unicode Bidirectional Algorithm UAX9 describes the process of presenting text with altering script directions. For example, it enables a Hebrew quote in an English text. The Bidi_Character_Type marks a character's behaviour in directional writing. To override a direction, Unicode has defined special ''formatting control characters'' (Bidi-Controls). These characters can enforce a direction, and by definition only affect bi-directional writing. Each code point has a property called Bidi_Class. It defines its behaviour in a bidirectional text as interpreted by the algorithm: In normal situations, the algorithm can determine the direction of a text by this character property. To control more complex Bidi situations, e.g. when an English text has a Hebrew quote, extra options are added to Unicode. Twelve characters have the property Bidi_Control=Yes: ALM, FSI, LRE, LRI, LRM, LRO, PDF, PDI, RLE, RLI, RLM and RLO as named in the table. These are invisible formatting control characters, only used by the algorithm and with no effect outside of bidirectional formatting. Despite the name, they are formatting characters, not control characters, and have General category "Other, format (Cf)" in the Unicode definition. Basically, the algorithm determines a sequence of characters with the same strong direction type (R-to-L ''or'' L-to-R), taking in account an overruling by the special Bidi-controls. Number strings (Weak types) are assigned a direction according to their strong environment, as are Neutral characters. Finally, the characters are displayed per a string's direction. Two character properties are relevant to determining a mirror image of a glyph in bidirectional text: Bidi_Mirrored=Yes indicates that the glyph should be mirrored when written R-to-L. The property Bidi_Mirroring_Glyph=U+''hhhh'' can then point to the mirrored character. For example, brackets "()" are mirrored this way. Shaping cursive scripts such as Arabic, and mirroring glyphs that have a direction, is not part of the algorithm.


Casing

The Case value is Normative in Unicode. It pertains to those scripts with uppercase (aka capital, majuscule) and the lowercase (aka small, minuscule) letters. Case-difference occurs in Adlam, Armenian, Cherokee, Coptic, Cyrillic, Deseret, Glagolitic, Greek, Khutsuri and Mkhedruli Georgian, Latin, Medefaidrin, Old Hungarian, Osage, Vithkuqi and Warang Citi scripts. (upper, lower, title, folding—both simple and full)


Numeric values and types


Decimal

Characters are classified with a Numeric type. Characters such as fractions, subscripts, superscripts, Roman numerals, currency numerators, encircled numbers, and script-specific digits are type Numeric. They have a numeric value that can be decimal, including zero and negatives, or a vulgar fraction. If there is not such a value, as with most of the characters, the numeric type is "None". The characters that do have a numeric value are separated in three groups: Decimal (De), Digit (Di) and Numeric (Nu, i.e. all other). "Decimal" means the character is a straight decimal digit. Only characters that are part of a contiguous encoded range 0..9 have numeric type Decimal. Other digits, like superscripts, have numeric type Digit. All numeric characters like fractions and Roman numerals end up with the type "Numeric". The intended effect is that a simple parser can use these decimal numeric values, without being distracted by say a numeric superscript or a fraction. Seventy-three CJK Ideographs that represent a number, including those used for accounting, are typed Numeric. On the other hand, characters that could have a numeric value as a second meaning are still marked Numeric type "None", and have no numeric value (""). E.g. Latin letters can be used in paragraph numbering like "II.A.1.b", but the letters "I", "A" and "b" are not numeric (type "None") and have no numeric value.


Hexadecimal digits

Hexadecimal In mathematics and computing, the hexadecimal (also base-16 or simply hex) numeral system is a positional numeral system that represents numbers using a radix (base) of 16. Unlike the decimal system representing numbers using 10 symbols, he ...
characters are those in the series with hexadecimal values 0...9ABCDEF (sixteen characters, decimal value 0–15). The character property Hex_Digit is set to Yes when a character is in such a series: Forty-four characters are marked as Hex_Digit. The ones in the Basic Latin block are also marked as ASCII_Hex_Digit. Unicode has no separate characters for hexadecimal values. A consequence is, that when using regular characters it is not possible to determine whether hexadecimal value is intended, or even whether a value is intended at all. That should be determined at a higher level, e.g. by prepending "0x" to a hexadecimal number or by context. The only feature is that Unicode can note that a sequence ''can or can not'' be a hexadecimal value.


Block

A block is a uniquely named, contiguous range of code points. It is identified by its first and last code point. Blocks do not
overlap Overlap may refer to: * In set theory, an overlap of elements shared between sets is called an intersection, as in a Venn diagram. * In music theory, overlap is a synonym for reinterpretation of a chord at the boundary of two musical phrases * O ...
. A block may contain code points that are reserved, not-assigned, etc. Each character that ''is'' assigned, has a single "block name" value from the 327 names assigned as of Unicode version 15.0. Unassigned code points outside of an existing block have the default value "No_block".


Script

Each assigned character can have a single value for its "Script" property, signifying to which script it belongs. The value is a four-letter code in the range Aaaa-Zzzz, as available in ISO 15924, which is mapped to a
writing system A writing system is a method of visually representing verbal communication, based on a script and a set of rules regulating its use. While both writing and speech are useful in conveying messages, writing differs in also being a reliable fo ...
. Apart from when describing the background and usage of a script, Unicode does not use a connection between a ''script'' and ''languages'' that use that script. So "Hebrew" refers to the Hebrew script, not to the Hebrew language. The special code Zyyy for "Common" allows a single value for a character that is used in multiple scripts. The code Zinh "Inherited script", used for combining characters and certain other special-purpose code points, indicates that a character "inherits" its script identity from the character with which it is combined. (Unicode formerly used the private code Qaai for this purpose.) The code Zzzz "Unknown" is used for all characters that do not belong to a script (i.e. the default value), such as symbols and formatting characters. Overall, characters of a single script can be scattered over multiple blocks, like
Latin character The Latin script, also known as Roman script, is an alphabetic writing system based on the letters of the classical Latin alphabet, derived from a form of the Greek alphabet which was in use in the ancient Greek city of Cumae, in southern Italy ...
s. And the other way around too: multiple scripts can be present is a single block, e.g. block Letterlike Symbols contains characters from the Latin, Greek and Common scripts. When the Script is "" (blank), according to Unicode the character does not belong to a script. This pertains to symbols, because the existing ISO script codes "Zmth" (Mathematical notation), "Zsym" (Symbol), and "Zsye" (Symbol, emoji variant) are not used in Unicode. The "Script" property is also blank for code points that are not a typographic character like controls, substitutes, and private use code points. If there is a specific script alias name in ISO 15924, it is used in the character name: , and .


Normalization properties

Decompositions, decomposition type, canonical combining class, composition exclusions, and more.


Age

Age is the version of the Standard in which the code point was first designated. The version number is shortened to the numbering major.minor, although there more detailed version numbers are used: versions 4.0.0 and 4.0.1 both are named 4.0 as Age. Given the releases, Age can be from the range: 1.1, 2.0, 2.1, 3.0, 3.1, 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, 6.0, 6.1, 6.2, 6.3, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.1, 13.0, 14.0 and 15.0. The long values for Age begin in a V and use an underscore instead of a dot: V1_1, for example. Codepoints without a specifically assigned age value have the value "NA", with the long form "Unassigned".


Deprecated

Once a character has been defined, it will not be removed or reassigned. However, a character may be
deprecated In several fields, especially computing, deprecation is the discouragement of use of some terminology, feature, design, or practice, typically because it has been superseded or is no longer considered efficient or safe, without completely removing ...
, meaning its "use is strongly discouraged". As of Unicode version 15.0, the following fifteen characters are deprecated:


Boundaries

The Unicode Standard specifies the following boundary-related properties: * Grapheme cluster * Word * Line * Sentence


Alias name

Unicode can assign alias names to code points. These names are unique over all names (including regular ones), so they can be usedas identifier. There are five possible reasons to add an alias: ;1. Abbreviation :Commonly occurring abbreviations or acronyms for control codes, format characters, spaces, and variation selectors. :For example, has alias . Sometimes presented in a box: . ;2. Control :
ISO 6429 The C0 and C1 control code or control character sets define control codes for use in text by computer systems that use ASCII and derivatives of ASCII. The codes represent additional information about the text, such as the position of a cursor, ...
names for C0 and C1 control functions and similar commonly occurring names, are added as an alias to the character. :For example, has alias . ;3. Correction :This is a correction for a "serious problem" in the primary character name, usually an error. :For example, is actually a ''lowercase'' p, and so is given alias name : "actually this has the form of a lowercase calligraphic p, despite its name, and through the alias the correct spelling is added." In descriptions, with preceding symbol
The reference mark or reference symbol "※" is a typographic mark or word used in Chinese, Japanese and Korean (CJK) writing. The symbol was used historically to call attention to an important sentence or idea, such as a prologue or footnote. ...
. ;4. Alternate :A widely used alternate name for a character. :Example: has alternate . ;5. Figment :Several documented labels for C1 control code points which were never actually approved in any standard ('' figment'' = feigned, in fiction). :For example, has figment alias . This name is an architectural concept from early drafts of ISO/IEC 10646-1, but it was never approved and standardized.


External links


Unicode Character Database
annex #44, explaining the different properties
UnicodeData.txt
– a list of all Unicode characters, with their properties


References

{{DEFAULTSORT:Unicode Character Property Character Properties