Hangul Conjoining Jamo Rendering

This page was put up to test and compare the rendering of Hangul conjoining jamos by various web browsers.

Middle Korean syllables

ᄊᆞᆷ ᄒᆞᆫ글 ᄀᆞᇹ ᄫᆞᆼ

In the above, 5 Hangul syllables (4 middle and 1 modern) represented using Hangul Jamos in U+1100 block.

Mozilla for Unix/X11 with Hangul fonts for Korean xterm ( Hanterm) available here can render them correctly as shown in the screenshot below. The relevant file in Mozilla source is intl/uconv/ucvko/nsUnicodeToX11Johab.cpp adapted from Hanterm source and its adapation to Java.

MS IE 6.0 is known to be able to render Middle Korean syllables represented with Hangul conjoining Jamos when opentype fonts with necessary glyph substitution rules are installed along with the newest version of Uniscribe (that comes with MS IE 6.0 or MS Office XP.) Unfortunately, Korean opentype fonts with glyph substitution rules for dynamic glyph composition are not yet available to non-Korean version of MS Office XP users. However, it's not clear, even with such a font, whether it can render modern Hangul syllables represented the same way as well.

MS IE 5.x (and Netscape 6.x/Mozilla ) can render Middle Korean syllables encoded with PUA characters when a font with a limited set of precomposed Middle Korean syllables in the PUA is installed. Korean MS Word/Office 2000 plus-pack CD provides some fonts with necessary glyphs. You can also obtain one of them here. Allegedely it cannot, however, make use of opentype fontswith glyph substitution to render Middle Korean syllables represented with U+1100 Jamos.

Incomplete modern syllables

Modern incomplete syllables such as ᅟᅥᆻ (U+115F U+1165 U+11BB) and ᅟᅡᆻ (U+115F U+1161 U+11BB) are not rendered as intended by most web browsers. Only browser that gets this right is Mozilla for Unix/X11.

Modern Hangul syllables decomposed

In what follows, different normalization forms as applied to modern Hangul syllables are compared. This is to show how web browsers interpret and render these normalization forms.
Comparison of various normalization forms applied to modern Hangul syllables
Normalization Form
NFC/NFKC
U+AE4DU+AD11 U+AD1CU+CC2E
NFKD(old) ᄀ각 고ᅡᆼ 고ᅡᅵᆫ 찬ᇂ
U+1100 U+1100 U+1161 U+11A8 U+1100 U+1169 U+1161 U+11BC U+1100 U+1169 U+1161 U+1175 U+11AB U+110E U+1161 U+11AB U+11C2
NFKD(new) 깍광괜 찮
U+1101 U+1161 U+11A8 U+1100 U+116A U+11BC U+1100 U+116B U+11AB U+110E U+1161 U+11AD
NFD 깍광괜 찮
U+1101 U+1161 U+11A8 U+1100 U+116A U+11BC U+1100 U+116B U+11AB U+110E U+1161 U+11AD

In NFC, modern complete syllables are represented with precomposed characters in the Hangul syllable block beginning at U+AC00. On the other hand, NFD and NFKD represent Hangul syllables with Hangul conjoining jamos in U+1100 block. Because compatibility decomposition of consonant clusters and vowel clusters into basic consonants(14 modern and 3 obsolete) and basic vowels (10 modern and 1 obsolete) has been removed from the Unicode standard by the request of RoK (which I think should have NOT been accepted.), NFD and NFKD are identical in Unicode 3.0. However, that was not the case in Unicode 2.0 where complex Jamos are compatibly decomposed into basic Jamos.

Mozilla for Unix/Linux/X11 with Hanterm fonts can handle NFD and Unicode 3.0 NFKD while MS IE 5.x cannot. As for MS IE 6.0, I'm afraid it cannot, but not sure. None of browsers can deal with Unicode 2.0 NFKD and the generic Hangul syllable formation rules (specified in p. 53 of TUS 3.0 and elaborated by Kent Karlsson in N2405R of ISO/IEC JTC1/SC22/WG2 at the moment. In addition, Mozilla for X11 has a bug and eats up the first (or first two) basic vowel(s) in a vowel cluster. (I think I can rather easily fix this.)

Screenshots

.