Article snapshot taken from Wikipedia with creative commons attribution-sharealike license.
Give it a read and then ask your questions in the chat.
We can research this topic together.
This article may overuse or misuse colour, making it hard to understand for colour-blind users. Please remove or fix instances of distracting or hard-to-read colours or remove coloured links that may impede users' ability to distinguish links from regular text, or links coloured for purely aesthetic reasons. See the guides to editing for accessibility of contrast and colour. (July 2024)
code points in orange were added in Unicode 5.2. These should form a syllabic square when conjoined with other jamo characters, but unupdated fonts, browsers or systems may not be able to do so.
code points highlighted with yellow background are part of the modern Hangul subset which are arithmetically composable (in pairs or triples of jamo characters) to canonically equivalent precomposed Hangul syllables in U+AC00–U+D7AF (see below for further explanation):
U+1100–U+1112: 19 modern Hangul leading consonant jamos
U+1161–U+1175: 21 modern Hangul vowel jamos
U+11A8–U+11C2: 27 modern Hangul trailing consonant jamos
all other jamos (shown in the tables below without the highlighting background) are obsolete; they are not used in modern Korean (some Korean input methods or keyboard layout may not allow entering them).
"Hanyang Private Use" is a character code system that was used in Hangul word processor version Wordian to 2007. This system maps old Hangul to the Private Use Area in Unicode. In Hangul Office 2010 and its subsequent versions, Hanyang PUA system was deprecated and replaced with the standard Unicode Hangul jamo encoding.
The Hangul compatibility jamo characters (U+3130–U+318F) are encoded in Unicode for compatibility with the earlier South Korean national standard KS X 1001 (formerly KS C 5601). Compatibility and halfwidth (U+FFA0–U+FFDC) characters are not composable into syllabic squares (because of the ambiguity for delimiting syllables when using them), but they may be used in legacy applications which cannot support or render the full Hangul syllable set such as low-cost terminals or old printers: these compatibility characters may exist either in fullwidth variant, or in halfwidth variants (mostly used in terminals with low resolution).
Unicode also defines a large subset of precomposed Hangul syllables (U+AC00–U+D7AF) made of two or three jamo characters for use in modern Korean (their canonical decomposition mappings are not found in the UCD, but are specified with an arithmetic algorithm only in The Unicode Standard, Chapter 3 Conformance) and are decomposable into equivalent sequences of two jamo characters (one in each of the first two subranges above) or three jamo characters (one in each of the three subranges above). Their initial encoding in Unicode 1.0 was different (and not compatible with later versions of Unicode) and were based on the compatibility jamo characters (ignoring the distinction between leading and trailing consonants, making the automatic composition of Hangul square sometimes ambiguous or wrong).
Tone marks (bangjeom, 방점, 傍點): were used in Middle Korean, written to the left of a syllabic square (but encoded after the leading Hangul jamo or syllable if encoded as a combining diacritic), and was used with the vertical presentation; for example in the Eonhaebon version (mixed Hanja and Hangul) of the Hunminjeongeum Eonhae):
Single dot (geoseong, 거성, 去聲) "〮" (·): U+302E (high tone); not to be confused with the obsolete vowel jamo ᆞ (U+119E) (or its corresponding compatibility jamo ㆍ (U+318D)) which is used in a medial or final position of a syllabic square (and appears after leading consonants)
The absence of tone mark implied the low tone (pyeongseong, 평성, 平聲).
Notes: These tone marks are input after the syllabic square they modify but they will be rendered by reordering to the left of the syllabic square. For example, the string "가〮" (U+AC00 U+302E) should be displayed like "·가", not "가·".
They were first encoded in Unicode as non-spacing combining marks, due to their most common and historic use with the vertical presentation, but they still need to have a positive advance-width to render Middle Korean texts in the modern horizontal presentation (to avoid collision with the previous syllabic square); their general category was later changed from Mn to Mc (spacing combining mark), even though they don't add any advance-width in the traditional vertical presentation.
Legacy encodings before they were encoded in Unicode, or if a font does not support glyphs for them, used generic punctuation marks (middle dot "·", or colon ":") input before the syllabic square (but this causes confusion when parsing text, and they do not work well for the vertical presentation because they would render above the next syllabic square instead of to the left).