- Author: Nicola Asuni <info@tecnick.com>
- Copyright: 2011-2026 Nicola Asuni - Tecnick.com LTD
- License: https://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE)
- Source: https://github.com/tecnickcom/tc-lib-unicode
Com\Tecnick\Unicode
Classes:
- Bidi: Unicode Bidirectional Algorithm (UAX #9): reorders each paragraph of the input from logical to visual order and applies the Arabic shaping.
- Convert: Malformed input policy: a string or char array that is not valid UTF-8 raises an exception, while a code point that cannot be encoded (negative, surrogate or greater than U+10FFFF) is replaced with ‘?
- Exception: Custom Exception class
- Substitution: Context-sensitive Unicode character substitution.
Enums:
- TextDirection: Forced paragraph direction accepted by Bidi.
Com\Tecnick\Unicode\Bidi
Classes:
- Shaping: Arabic shaping: replaces the characters of an isolating run sequence with their positional presentation forms and ligatures.
- StepBase: Base class of the steps that process one isolating run sequence.
- StepI: I steps of the Bidirectional Algorithm: resolving implicit levels (I1 and I2).
- StepL: L steps of the Bidirectional Algorithm: reordering the resolved levels (L1, L2 and L4).
- StepN: N steps of the Bidirectional Algorithm: resolving neutral and isolate formatting types (N0 to N2).
- StepP: P steps of the Bidirectional Algorithm: paragraph embedding level (P2 and P3).
- StepW: W steps of the Bidirectional Algorithm: resolving weak types (W1 to W7).
- StepX: X steps of the Bidirectional Algorithm: explicit levels and directions (X1 to X9).
- StepXten: Rule X10 of the Bidirectional Algorithm: isolating run sequences and their start-of-sequence and end-of-sequence types.
Com\Tecnick\Unicode\Bidi\Shaping
Classes:
- Arabic: Joining context of the Arabic shaping: the form of a character is decided by the Joining_Type of the nearest non-transparent characters around it, as defined by ArabicShaping.txt and section 9.2 of th
Com\Tecnick\Unicode\Convert
Classes:
- Encoding: Conversions between UTF-8, Latin1, UTF-16BE and hexadecimal byte strings.
Com\Tecnick\Unicode\Data
Classes:
- Devanagari: Devanagari codepoint tables for character substitution and cluster reordering.
- Hangul: Algorithmic constants for the composition of Hangul Jamo into precomposed Hangul syllables, as defined in section 3.12 of the Unicode standard.
- ScriptRanges: Unicode codepoint ranges used to detect which scripts are present in a codepoint array.
- Thai: Thai codepoint tables for character substitution and reordering.
Com\Tecnick\Unicode\Substitution
Classes:
- Devanagari: Repositions Devanagari left-positional matras (vowel signs with Indic Positional Category “Left”, such as U+093F VOWEL SIGN I) to precede their base consonant cluster: in Unicode logical order they ar
- Hangul: Composes Hangul Jamo sequences into precomposed syllables, as defined by section 3.12 “Conjoining Jamo Behavior” of the Unicode standard.
- Thai: Thai codepoints are returned unchanged.