IBM i Bidirectional CCSID String Type Information
Table 1. Bidirectional Language String Types and Associated Attributes
|Text Type||Numeric Shaping||Orientation||Text Shaping||Symmetrical
Note: (*) Field Orientation is left-to-right (LTR) when the first alphabetic character is a Latin one, and right-to-left (RTL) when it is a Bidi character; characters are unshaped, but LamAlif ligatures are kept, and not broken into constituents.
Orientation: In bidirectional languages, some characters, such as English letters, are considered to have a strong left-to-right orientation. Other characters, such as the Arabic characters, are considered strong right-to-left characters. And other characters, such as punctuation marks, spaces, and so on, do not have a strong direction associated with them. These are also contextual. In this situation, the global orientation is set according to the direction of the first significant (strong) character.
Numeric Shaping: In Arabic, it is common to use Hindi numbers instead of Arabic numbers. "1" "2" etc. are the Arabic version of the numbers.
Text Shaping: Specifies the shaping: that is, choosing (or composing) the correct shape of the input or output text.
Note: This value is important, in particular for languages where the shapes of the characters, when presented, correspond to code points that may be different from the code points of the characters stored for processing. In languages such as Arabic or Farsi, the character can have up to four different shapes (see Shapes of the Arabic Characters). In these languages the character is most frequently (but not always) stored and processed using a code point related to a basic shape. Often the basic shape chosen is the isolated shape.
An Arabic Script character often has initial form, middle form, final form, and isolated form
Symmetrical Swapping: The Swapping descriptor specifies whether symmetric swapping is applied to the text. A list of symmetric swapping characters is given in the ISO/IEC 10646 standard. For example, the string "(1)" without might become ")1("