MarketUnicode character property
Company Profile

Unicode character property

The Unicode Standard assigns various properties to each Unicode character and code point.

Semantic elements
Properties are displayed in the following order: [code];[name];[gc];[cc];[bc];[decomposition];[nv-dec];[nv-dig];[nv-num];[bm];[alias];;[upper case];[lower case];[title case] • alias = corrected name. Obsolete. Now tracked with a separate database, but remains for Unicode 1.0 names. • bc = bidi (bidirectional) category [L, R etc] • bm = bidi mirrored [N or Y] • cc = combining class [position of diacritic] • decomposition type or = letter + diacritic, ligature X Y, superscript X, font X, initial X, medial X, final X, isolated X, vertical X, etc. • gc = general category [letter, symbol, digit, punctuation, case behaviour, etc.] • nv = numeric type and value [of a digit]. If numeric type is 'decimal', all 3 slots are filled. If 'digit', the first will be null. (This has been discontinued.) If 'numeric', then the first two will be null and only the last will be used. The property between alias and upper case is obsolete and is now null for all Unicode characters. ==Name and alias==
{{anchor|Name}}Name and alias
A Unicode character is assigned a unique Name (na). 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==
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 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 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 , there are 25 whitespace characters. Casing The Case value is normative in Unicode. It pertains to those scripts with uppercase and lowercase letters. Case-difference occurs in Adlam, Armenian, Beria Erfe, Cherokee, Coptic, Cyrillic, Deseret, Garay, Glagolitic, Greek, Khutsuri and Mkhedruli Georgian, Latin, Medefaidrin, Old Hungarian, Osage, Vithkuqi and Warang Citi scripts. Different languages have different case mapping rules. In Turkish, corresponds to instead of . Similarly, when corresponds to instead of . In Nawdm, the letter Ĥ corresponds to ɦ in lowercase instead of the usual case mappings being Ĥĥ and Ɦɦ. In Greek, the letter sigma has different lowercase forms depending on where it is in a word. converts to if it is at the start or middle of a word, and converts to if it is at the end of a word. In Lithuanian, the dot in lowercase i and j is preserved when followed by accents. For example: Í in lowercase is i̇́. Despite the existence of , corresponds to "SS". Unicode encodes 31 titlecase characters. • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • Other general characteristics Unicode defines several general character properties in the Unicode Character Database (UAX #44). Some of the most important ones include: • Ideographic — Characters that represent ideas or concepts rather than specific sounds. These include most Han (CJK) characters used in Chinese, Japanese, and Korean writing systems. • Alphabetic — Characters that are considered letters in an alphabetic or syllabic writing system. This includes Latin, Greek, Cyrillic letters, as well as characters from syllabaries like Hiragana. • Noncharacter — Code points that are permanently reserved for internal use and are not assigned to any abstract character. These include U+FDD0 through U+FDEF, and any code ending in FFFE or FFFF (such as U+1FFFE, U+10FFFF). ==Combining class==
Combining class
Some common codes: :0 = spacing letter, symbol or modifier (e.g. , , ) :1 = overlay :6 = Han reading (CJK diacritic reading marks) :7 = nukta (diacritic nukta in Brahmic scripts) :8 = kana voicing marks :9 = virama 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 (only that Greek diacritic) ==Bidirectional writing==
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-Control characters). 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. 12 characters have the property : 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: indicates that the glyph should be mirrored when written R-to-L. The property can then point to 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. ==Numeric values and types==
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. Eighty-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 characters are those in the series with hexadecimal values 0123456789ABCDEF (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==
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, nor do they extend across planes. The number of code points in each block must be a multiple of 16. 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 346 names assigned as of Unicode version . Unassigned code points outside of an existing block have the default value "No_block". ==Script==
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. 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 characters. 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==
Normalization properties
Decompositions, decomposition type, canonical combining class, composition exclusions, and more. ==Age==
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, 15.0, 15.1, 16.0 and 17.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==
Deprecated
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 , the following fifteen characters are deprecated: ==Boundaries==
Boundaries
The Unicode Standard specifies the following boundary-related properties: • Grapheme cluster • Word • Line • Sentence ==Alias name==
Alias name
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: ;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 names for C0 and C1 control functions and similar commonly occurring names, are added as an alias to the character. :For example, has the 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 . ;4. Alternate :A widely used alternate name for a character. :Example: has the alternate alias . ;5. Figment :Several documented labels for C1 control code points which were never actually approved in any standard (figment meaning "feigned, in fiction"). :For example, has the figment alias . This name is an architectural concept from early drafts of ISO/IEC 10646-1, but it was never approved or standardized. ==External links==
tickerdossier.comtickerdossier.substack.com