The Unicode Standard assigns various properties to each Unicode character and code point .
38-564: 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,
76-408: 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
114-532: A writing system . 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
152-428: A Name (na=""): Controls (General Category: 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": <control>, <control-0088>, <reserved>, <noncharacter- hhhh >, <private-use- hhhh >, or <surrogate>. Since these labels contain <>-brackets, they can never appear as
190-413: A Name, which prevents confusion. 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. Starting from Unicode version 2.0, the published name for a code point will never change. Therefore, in
228-439: 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". Once a character has been defined, it will not be removed or reassigned. However, a character may be deprecated , meaning its "use is strongly discouraged". As of Unicode version 16.0, the following fifteen characters are deprecated: The Unicode Standard specifies
266-410: 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 characters . And
304-515: A character property can be assigned by specifying a continuous range of code points that have the same property. Properties are displayed in the following order: The property between 'alias' and 'upper case' is obsolete and is now null for all Unicode characters. The first property is the hexadecimal code point . 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
342-451: A character". Characters have separate properties to denote they are a punctuation character. The properties all have a Yes/No values : Dash , Quotation_Mark , Sentence_Terminal , Terminal_Punctuation . The Punctuation property refers to characters that are used to divide or structure text, and these are classified into different types based on their roles. Unicode assigns these punctuation characters specific categories. Whitespace
380-399: 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. Eighty-three CJK Ideographs that represent
418-454: A graphical glyph but a unit of textual data. However, code points may also be left reserved for future assignment (most of the Unicode code space is unassigned), or given other designated functions. The distinction between a code point and the corresponding abstract character is not pronounced in Unicode but is evident for many other encoding schemes, where numerous code pages may exist for
SECTION 10
#1732783635539456-415: 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 characters are those in
494-472: 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
532-437: A set of country codes for telecommunications equipment (originally fax machines) which allow equipment to indicate its country of manufacture or operation. In T.35, Argentina is represented by the code point 0x07, Canada by 0x20, Gambia by 0x41, etc. Code points are commonly used in character encoding , where a code point is a numerical value that maps to a specific character . In character encoding code points usually represent
570-423: A single grapheme —usually a letter, digit, punctuation mark, or whitespace—but sometimes represent symbols, control characters , or formatting. The set of all possible code points within a given encoding/character set make up that encoding's codespace . For example, the character encoding scheme ASCII comprises 128 code points in the range 0 hex to 7F hex , Extended ASCII comprises 256 code points in
608-504: A single code space. The concept of a code point dates to the earliest standards for digital information processing and digital telecommunications. In Unicode, code points are part of Unicode's solution to a difficult conundrum faced by character encoding developers in the 1980s. If they added more bits per character to accommodate larger character sets, that design decision would also constitute an unacceptable waste of then-scarce computing resources for Latin script users (who constituted
646-557: 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 " cjk unified ideograph - hhhh ". For example, U+4E00 一 CJK UNIFIED IDEOGRAPH-4E00 . Formatting characters are named too: U+00A0 NO-BREAK SPACE . The following classes of code point do not have
684-478: A spreadsheet), three dimensional (sheets in a workbook), etc... in any number of dimensions. Technically, a code point is a unique position in a quantized n-dimensional space, where the position has been assigned a semantic meaning. The table has discrete (whole) and positive positions (1, 2, 3, 4, but not fractions). Code points are used in a multitude of formal information processing and telecommunication standards. For example ITU-T Recommendation T.35 contains
722-455: Is assigned, has a single "block name" value from the 338 names assigned as of Unicode version 16.0. Unassigned code points outside of an existing block have the default value "No_block". 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
760-438: 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 16.0, there are 25 whitespace characters. The Case value is Normataive in Unicode. It pertains to those scripts with uppercase (aka capital, majuscule) and
798-425: 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: U+0041 A LATIN CAPITAL LETTER A , and U+05D0 א HEBREW LETTER ALEF . Decompositions, decomposition type, canonical combining class, composition exclusions, and more. Age
SECTION 20
#1732783635539836-507: Is called a code unit – for the UCS-4 encoding, any code point is encoded as 4- byte ( octet ) binary numbers , while in the UTF-8 encoding, different code points are encoded as sequences from one to four bytes long, forming a self-synchronizing code . See comparison of Unicode encodings for details. Code points are normally assigned to abstract characters . An abstract character is not
874-550: 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. 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 . A block may contain code points that are reserved, not-assigned, etc. Each character that
912-529: 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, 15.0, 15.1, and 16.0. The long values for Age begin in
950-672: The Unicode Standard: 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 <control-0007> because U+1F514 is named "BELL"; U+0007 instead has the alias of "ALERT"). As of Unicode version 16.0, thirty-five formal character name aliases are defined as corrections for defective character names. Apart from these normative names, informal names may be shown in
988-431: 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. 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
1026-438: The base letter: Marks which do not attach to the base letter: 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
1064-496: 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, U+FE18 ︘ PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET has the character name alias " PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRACKET " in order to mitigate
1102-475: The following boundary-related properties: Unicode can assign alias names to code points. These names are unique over all names (including regular ones), so they can be used as identifier. There are five possible reasons to add an alias: Code point A code point , codepoint or code position is a particular position in a table , where the position has been assigned a meaning. The table may be one dimensional (a column), two dimensional (like cells in
1140-500: The lowercase (aka small, minuscule) letters. Case-difference occurs in Adlam, Armenian, Cherokee, Coptic, Cyrillic, Deseret, Garay, Glagolitic, Greek, Khutsuri and Mkhedruli Georgian, Latin, Medefaidrin, Old Hungarian, Osage, Vithkuqi and Warang Citi scripts. (upper, lower, title, folding—both simple and full) Ideographic, alphabetic, noncharacter. Some common codes: 10–199 = various fixed-position classes Marks which attach to
1178-412: The mirrored character. For example, parentheses ( , ) are mirrored this way. Shaping cursive scripts such as Arabic, and mirroring glyphs that have a direction, is not part of the algorithm. 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
Unicode character property - Misplaced Pages Continue
1216-510: The misspelling of "bracket" as "brakcet" [ sic ] in the actual character name; U+A015 ꀕ YI SYLLABLE WU 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
1254-567: 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
1292-424: 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-Control s). These characters can enforce a direction, and by definition only affect bi-directional writing. Each code point has
1330-420: The range 0 hex to FF hex , and Unicode comprises 1,114,112 code points in the range 0 hex to 10FFFF hex . The Unicode code space is divided into seventeen planes (the basic multilingual plane, and 16 supplementary planes), each with 65,536 (= 2 ) code points. Thus the total size of the Unicode code space is 17 × 65,536 = 1,114,112. For Unicode, the particular sequence of bits
1368-476: 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
1406-463: 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
1444-448: 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
#538461