Unknown language family
ハングル文字の、ユニコードを計算する方法について
Hangul Unicode
韓国、北朝鮮で使われているハングル文字は、いわゆるアルファベットとしての性格を持ち、一つ一つの文字を母音と子音に分解できます。
ㅎ (h) + ㅐ (ae) + ㄱ (k) を組み合わせると、핵(haek, ヘク)というハングル一文字が合成されます。
字母と呼ばれる部品を組み合せ、ひとつのシラブルをあらわすハングル文字を合成するわけです。
ユニコードでは、ハングル文字を、字母ごとに分けて配置しています。まず、初めの字母で分類し、さらに順番に次の字母を組み合わせたハングル文字が並びます。
これを、C言語で表すと、以下のようになります。
block[HANGUL_H]+vowel_offset[HANGUL_AE]+PACCHIM_G のように、それぞれの値を足していくと、組み合わせたハングル文字のユニコードを計算することができます。
表記は、「국어의 로마자 표기법(文化観光部2000年式)」方式に準拠しています。
すべて合わせると数千あるハングル文字ですが、処理体系が実装されていれば、非常に効率的に文字データを表現できる可能性があったということがいえます。しかしながら、Windowsを初めとして、そのような表記法は使う動きにはなりませんでした。技術的な進歩により、メモリがふんだんに使えるようになったことから、処理を単純化する方向に発展してきたというわけです。ハングルの場合、文字ごとに(無意味な)コードが割り振られています。