Civil Rights
Movements, leaders, victories and the continuing fight for equality.
Explore the people, places, events, achievements, struggles and stories that shaped our journey.
Movements, leaders, victories and the continuing fight for equality.
Innovation, patents, science, technology and world-changing contributions.
Pioneers, champions, Negro Leagues, records, activism and excellence.
Meet the people whose lives, choices and achievements shaped the journey.
Black towns, communities, institutions and places where history happened.
Moments that changed communities, movements, institutions and the nation.
In August 1908, a white mob attacked Springfield, Illinois’s Black community, destroying homes and businesses and lynching two Black men. National outrage over the violence helped spur the movement that created the NAACP the following year.
MORE →Reflects the personal views, recollections, and perspective of the author, Mike Davis.
This is a personal recollection on the Move fire on May 13, 1985
This article needs more citations. (July 2015) |
A bidirectional text contains two text directionalities, right-to-left (RTL) and left-to-right (LTR). It generally involves text containing different types of alphabets, but may also refer to boustrophedon, which is changing text direction in each row.
An example is the RTL Hebrew name Sarah: שרה, spelled sin (ש) on the right, resh (ר) in the middle, and heh (ה) on the left. Many computer programs failed to display this correctly, because they were designed to display text in one direction only.
Some so-called right-to-left scripts such as the Persian script and Arabic are mostly, but not exclusively, right-to-left—mathematical expressions, numeric dates and numbers bearing units are embedded from left to right. That also happens if text from a left-to-right language such as English is embedded in them; or vice versa, if Arabic is embedded in a left-to-right script such as English.
Bidirectional script support is the capability of a computer system to correctly display bidirectional text. The term is often shortened to "BiDi" or "bidi".
Early computer installations were designed only to support a single writing system, typically for left-to-right scripts based on the Latin alphabet only. Adding new character sets and character encodings enabled a number of other left-to-right scripts to be supported, but did not easily support right-to-left scripts such as Arabic or Hebrew, and mixing the two was not practical. Right-to-left scripts were introduced through encodings like ISO/IEC 8859-6 and ISO/IEC 8859-8, storing the letters (usually) in writing and reading order. It is possible to simply flip the left-to-right display order to a right-to-left display order, but doing this sacrifices the ability to correctly display left-to-right scripts. With bidirectional script support, it is possible to mix characters from different scripts on the same page, regardless of writing direction.
In particular, the Unicode standard provides foundations for complete BiDi support, with detailed rules as to how mixtures of left-to-right and right-to-left scripts are to be encoded and displayed.
The Unicode standard calls for characters to be ordered 'logically', i.e. in the sequence they are intended to be interpreted, as opposed to 'visually', the sequence they appear. This distinction is relevant for bidi support because at any bidi transition, the visual presentation ceases to be the 'logical' one. Thus, in order to offer bidi support, Unicode prescribes an algorithm for how to convert the logical sequence of characters into the correct visual presentation. For this purpose, the Unicode encoding standard divides all its characters into one of four types: 'strong', 'weak', 'neutral', and 'explicit formatting'.[1]
Strong characters are those with a definite direction. Examples of this type of character include most alphabetic characters, syllabic characters, Han ideographs, non-European or non-Arabic digits, and punctuation characters that are specific to only those scripts.
Weak characters are those with vague direction. Examples of this type of character include European digits, Eastern Arabic-Indic digits, arithmetic symbols, and currency symbols.
Neutral characters have direction indeterminable without context. Examples include paragraph separators, tabs, and most other whitespace characters. Punctuation symbols that are common to many scripts, such as the colon, comma, full-stop, and the no-break-space also fall within this category.
Explicit formatting characters, also referred to as "directional formatting characters", are special Unicode sequences that direct the algorithm to modify its default behavior. These characters are subdivided into "marks", "embeddings", "isolates", and "overrides". Their effects continue until the occurrence of either a paragraph separator, or a "pop" character.
If a "weak" character is followed by another "weak" character, the algorithm will look at the first neighbouring "strong" character. Sometimes this leads to unintentional display errors. These errors are corrected or prevented with "pseudo-strong" characters. Such Unicode control characters are called marks. The mark (U+200E LEFT-TO-RIGHT MARK (LRM) or U+200F RIGHT-TO-LEFT MARK (RLM)) is to be inserted into a location to make an enclosed weak character inherit its writing direction.
For example, to correctly display the U+2122 ™ TRADE MARK SIGN for an English name brand (LTR) in an Arabic (RTL) passage, an LRM mark is inserted after the trademark symbol if the symbol is not followed by LTR text (e.g. "قرأ Wikipedia™ طوال اليوم."). If the LRM mark is not added, the weak character ™ will be neighbored by a strong LTR character and a strong RTL character. Hence, in an RTL context, it will be considered to be RTL, and displayed in an incorrect order (e.g. "قرأ Wikipedia™ طوال اليوم.").
The "embedding" directional formatting characters are the classical Unicode method of explicit formatting, and as of Unicode 6.3, are being discouraged in favor of "isolates". An "embedding" signals that a piece of text is to be treated as directionally distinct. The text within the scope of the embedding formatting characters is not independent of the surrounding text. Also, characters within an embedding can affect the ordering of characters outside. Unicode 6.3 recognized that directional embeddings usually have too strong an effect on their surroundings and are thus unnecessarily difficult to use.
The "isolate" directional formatting characters signal that a piece of text is to be treated as directionally isolated from its surroundings. As of Unicode 6.3, these are the formatting characters that are being encouraged in new documents – once target platforms are known to support them. These formatting characters were introduced after it became apparent that directional embeddings usually have too strong an effect on their surroundings and are thus unnecessarily difficult to use. Unlike the legacy 'embedding' directional formatting characters, 'isolate' characters have no effect on the ordering of the text outside their scope. Isolates can be nested, and may be placed within embeddings and overrides.
The "override" directional formatting characters allow for special cases, such as for part numbers (e.g. to force a part number made of mixed English, digits and Hebrew letters to be written from right to left), and are recommended to be avoided wherever possible. As is true of the other directional formatting characters, "overrides" can be nested one inside another, and in embeddings and isolates.
Using U+202D LEFT-TO-RIGHT OVERRIDE will switch the text direction from left-to-right to right-to-left. Similarly, using U+202E RIGHT-TO-LEFT OVERRIDE will switch the text direction from right-to-left to left-to-right based on the Unicode Bidirectional Algorithm.
The "pop" directional formatting character, encoded at U+202C POP DIRECTIONAL FORMATTING, terminates the scope of the most recent "embedding", "override", or "isolate".
In the algorithm, each sequence of concatenated strong characters is called a "run". A "weak" character that is located between two "strong" characters with the same orientation will inherit their orientation. A "weak" character that is located between two "strong" characters with a different writing direction will inherit the main context's writing direction (in an LTR document the character will become LTR, in an RTL document, it will become RTL).
| Type[2] | Description | Strength | Directionality | General scope | Bidi_Control character[3] |
|---|---|---|---|---|---|
| L | Left-to-Right | Strong | L-to-R | Most alphabetic and syllabic characters, Chinese characters, non-European or non-Arabic digits, LRM character, ... | U+200E LEFT-TO-RIGHT MARK (LRM) |
| R | Right-to-Left | Strong | R-to-L | Adlam, Garay, Hebrew, Mandaic, Mende Kikakui, N'Ko, Samaritan, ancient scripts like Kharoshthi and Nabataean, RLM character, ... | U+200F RIGHT-TO-LEFT MARK (RLM) |
| AL | Arabic Letter | Strong | R-to-L | Arabic, Hanifi Rohingya, Sogdian, Syriac, and Thaana alphabets, and most punctuation specific to those scripts, ALM character, ... | U+061C ARABIC LETTER MARK (ALM) |
| EN | European Number | Weak | European digits, Eastern Arabic-Indic digits, Coptic epact numbers, ... | ||
| ES | European Separator | Weak | plus sign, minus sign, ... | ||
| ET | European Number Terminator | Weak | degree sign, currency symbols, ... | ||
| AN | Arabic Number | Weak | Arabic-Indic digits, Arabic decimal and thousands separators, Rumi digits, Hanifi Rohingya digits, ... | ||
| CS | Common Number Separator | Weak | colon, comma, full stop, no-break space, ... | ||
| NSM | Nonspacing Mark | Weak | Characters in General Categories Mark, nonspacing, and Mark, enclosing (Mn, Me) | ||
| BN | Boundary Neutral | Weak | Default ignorables, non-characters, control characters other than those explicitly given other types | ||
| B | Paragraph Separator | Neutral | paragraph separator, appropriate Newline Functions, higher-level protocol paragraph determination | ||
| S | Segment Separator | Neutral | Tabs | ||
| WS | Whitespace | Neutral | space, figure space, line separator, form feed, General Punctuation block spaces (smaller set than the Unicode whitespace list) | ||
| ON | Other Neutrals | Neutral | All other characters, including object replacement character | ||
| LRE | Left-to-Right Embedding | Explicit | L-to-R | LRE character only | U+202A LEFT-TO-RIGHT EMBEDDING (LRE) |
| LRO | Left-to-Right Override | Explicit | L-to-R | LRO character only | U+202D LEFT-TO-RIGHT OVERRIDE (LRO) |
| RLE | Right-to-Left Embedding | Explicit | R-to-L | RLE character only | U+202B RIGHT-TO-LEFT EMBEDDING (RLE) |
| RLO | Right-to-Left Override | Explicit | R-to-L | RLO character only | U+202E RIGHT-TO-LEFT OVERRIDE (RLO) |
| Pop Directional Format | Explicit | PDF character only | U+202C POP DIRECTIONAL FORMATTING (PDF) | ||
| LRI | Left-to-Right Isolate | Explicit | L-to-R | LRI character only | U+2066 LEFT-TO-RIGHT ISOLATE (LRI) |
| RLI | Right-to-Left Isolate | Explicit | R-to-L | RLI character only | U+2067 RIGHT-TO-LEFT ISOLATE (RLI) |
| FSI | First Strong Isolate | Explicit | FSI character only | U+2068 FIRST STRONG ISOLATE (FSI) | |
| PDI | Pop Directional Isolate | Explicit | PDI character only | U+2069 POP DIRECTIONAL ISOLATE (PDI) | |
Notes
| |||||
Unicode bidirectional characters are used in the Trojan Source vulnerability.[2]
Visual Studio Code highlights BiDi control characters since version 1.62 released in October 2021.[3]
Visual Studio highlights BiDi control characters since version 17.0.3 released on December 14, 2021.[4]
Egyptian hieroglyphs were written bidirectionally, where the signs that had a distinct "head" or "tail" faced the beginning of the line.
Chinese characters can be written in either direction as well as vertically (top to bottom then right to left), especially in signs (such as plaques), but the orientation of the individual characters does not change. This can often be seen on tour buses in China, where the company name customarily runs from the front of the vehicle to its rear — that is, from right to left on the right side of the bus, and from left to right on the left side of the bus. English texts on the right side of the vehicle are also quite commonly written in reverse order. (See pictures of tour bus and post vehicle below.)
Likewise, other CJK scripts made up of the same square characters, such as the Japanese writing system and Korean writing system, can also be written in any direction, although horizontally left-to-right, top-to-bottom and vertically top-to-bottom right-to-left are the two most common forms.
Boustrophedon is a writing style found in ancient Greek inscriptions, Old Sabaic (an Old South Arabian language), Hungarian runes, and the Rongorongo script of Rapa Nui (Easter Island). This method of writing alternates direction, and usually reverses the individual characters, on each successive line.
Moon type is an embossed adaptation of the Latin alphabet invented as a tactile alphabet for the blind. Initially the text changed direction (but not character orientation) at the end of the lines. Special embossed lines connected the end of a line and the beginning of the next.[5] Around 1990, it changed to a left-to-right orientation.
Source: Wikipedia. Article content is retrieved live through the MediaWiki API.
A bidirectional text contains two text directionalities, right-to-left (RTL) and left-to-right (LTR). It generally involves text containing different types of alphabets, but may also refer to boustrophedon, which is changing text direction in each row. An example is the RTL Hebrew name Sarah: שרה, spelled sin (ש) on the right, resh (ר) in the middle, and heh (ה) on the left. Many computer programs failed to display this correctly, because they were designed to display text in one direction only. Some so-called right-to-left scripts such as the Persian script and Arabic are mostly, but not exclusively, right-to-left—mathematical expressions, numeric dates and numbers bearing units are embedded from left to right. That also happens if text from a left-to-right language such as English is embedded in them; or vice versa, if Arabic is embedded in a left-to-right script such as English.
Bidirectional may refer to: Bidirectional, a roadway that carries traffic moving in opposite directions Bi-directional vehicle, a tram or train or any other vehicle that can be controlled from either end and can move forward or backward with equal ease without any need to be turned around Bidirectional text, text containing text in both text directionalities Duplex (telecommunications), communication in both directions Bidirectionalization, a process in computer science Bidirectional railway signalling; see Application of railway signals#Bidirectional signalling Bidirectional learning/process refers to two way learning. In terms of socialization, the process helps both novices and experts learn from each other. Bidirectional LED
The Unicode Consortium and the ISO/IEC JTC 1/SC 2/WG 2 jointly collaborate on the list of the characters in the Universal Coded Character Set. The Universal Coded Character Set, most commonly called the Universal Character Set (abbr. UCS, official designation: ISO/IEC 10646), is an international standard to map characters, discrete symbols used in natural language, mathematics, music, and other domains, to unique machine-readable data values. By creating this mapping, the UCS enables computer software vendors to interoperate, and transmit—interchange—UCS-encoded text strings from one to another. Because it is a universal map, it can be used to represent multiple languages at the same time. This avoids the confusion of using multiple legacy character encodings, which can result in the same sequence of codes having multiple interpretations depending on the character encoding in use, resulting in mojibake if the wrong one is chosen. UCS has a potential capacity of over 1 million characters. Each UCS character is abstractly represented by a code point, an integer between 0 and 1,114,111 (1,114,112 = 220 + 216 or 17 × 216 = 0x110000 code points), used to represent each character within the internal logic of text processing software. As of Unicode 18.0, released in September 2026, 316,784 (28%) of these code points are allocated, 172,873 (15%) have been assigned characters, 137,468 (12%) are reserved for private use, 2,048 are used to enable the mechanism of surrogates, and 66 are designated as noncharacters, leaving the remaining 797,328 (72%) unallocated. The number of encoded characters is made up as follows: 172,636 graphical characters (some of which do not have a visible glyph, but are still counted as graphical) 237 special purpose characters for control and formatting. ISO maintains the basic mapping of characters from character name to code point. Often, the terms character and code point will be used interchangeably. However, when a distinction is made, a code point refers to the integer of the character: what one might think of as its address. Meanwhile, a character in ISO/IEC 10646 includes the combination of the code point and its name, Unicode adds many other useful properties to the character set, such as block, category, script, and directionality. In addition to the UCS, the supplementary Unicode Standard, (not a joint project with ISO, but rather a publication of the Unicode Consortium,) provides other implementation details such as: mappings between UCS and other character sets different collations of characters and character strings for different languages an algorithm for laying out bidirectional text ("the BiDi algorithm"), where text on the same line may shift between left-to-right ("LTR") and right-to-left ("RTL") a case-folding algorithm Computer software end users enter these characters into programs through various input methods, for example, physical keyboards or virtual character palettes. The UCS can be divided in various ways, such as by plane, block, character category, or character property.
Many Unicode characters are used to control the interpretation or display of text, but these characters themselves have no visual or spatial representation. For example, the null character (U+0000 NULL) is used in C-programming application environments to indicate the end of a string of characters. In this way, these programs only require a single starting memory address for a string (as opposed to a starting address and a length), since the string ends once the program reads the null character. In the narrowest sense, a control code is a character with the general category Cc, which comprises the C0 and C1 control codes, a concept defined in ISO/IEC 2022 and inherited by Unicode, with the most common set being defined in ISO/IEC 6429. Control codes are handled distinctly from ordinary Unicode characters, for example, by not being assigned character names (although they are assigned normative formal aliases). In a broader sense, other non-printing format characters, such as those used in bidirectional text, are also referred to as control characters by software; these are mostly assigned to the general category Cf (format), used for format effectors introduced and defined by Unicode itself.
Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.
MORE →Shirley Chisholm, elected in 1968.