From: Mike (mike-list@pobox.com)
Date: Wed Jun 14 2006 - 17:17:15 CDT
> I don't even know what a Jamo is. Or what it does. Or who needs it, or
> why, or what it looks like. Is a Jamo a name that Unicode made up or is
> it a proper name used by certain people?
A jamo is a Korean "letter." They combine to form syllables.
There are 11,172 precomposed syllables that decompose in NFD
according to an algorithm. Because there is an algorithm to
decompose them, they are not all listed in UnicodeData.txt.
A syllable decomposes into a leading (L) jamo, a vowel (V),
and a trailing jamo (T).
Here is partial code to do the decomposition:
// Hangul decomposition parameters
static const uint SBase = 0xAC00;
static const uint LBase = 0x1100;
static const uint VBase = 0x1161;
static const uint TBase = 0x11A7;
static const uint LCount = 19;
static const uint VCount = 21;
static const uint TCount = 28;
static const uint NCount = 588; // VCount * TCount;
static const uint SCount = 11172; // LCount * NCount;
static const uint SEnd = 0xD7A3; // SBase + SCount - 1;
....
if ((u_Char >= SBase) && (u_Char <= SEnd))
{
uint SIndex = u_Char - SBase;
uint L = LBase + SIndex / NCount;
uint V = VBase + (SIndex % NCount) / TCount;
uint T = TBase + SIndex % TCount;
p_Array->u_Length = (T == TBase) ? 2 : 3;
p_Array->array[0] = L;
p_Array->array[1] = V;
p_Array->array[2] = T;
}
Mike
This archive was generated by hypermail 2.1.5 : Wed Jun 14 2006 - 17:25:17 CDT