Korean language and computers
The writing system of Korean, Hangul, is an alphabet organized into blocks of syllables; characters cannot be written from left to right. Because of this, every possible syllable in Korean must either be rendered as syllable blocks by a font, or be encoded separately. Unicode uses the latter option. As an example, the syllable 하 (ha) consists of the characters ㅎ (h) and ㅏ (a), but both of them are encoded separately.

Character encodings 

In RFC 1557, a method known as ISO-2022-KR for a 7-bit encoding of Korean characters in email was described. Where 8 bits are allowed, the EUC-KR encoding is preferred. These two encodings combine US-ASCII (ISO 646) with the Korean standard KS X 1001:1992 (previously named KS C 5601:1987). In North Korea, a separate character set called KPS 9566 is in use, which is rather similar to KS X 1001.

The international Unicode standard contains special characters for representing the Korean language in the native hangul phonetic system. There are two ways supported by Unicode. The way used by Microsoft Windows is to have every one of the 11,172 syllable combinations as a code and a pre-formed font character. The other way is to encode letters (jamos), and to let the software combine them into correct combinations, which is not supported in Windows. Of course the former way needs more font memory, but gives the possibility of getting better shapes, since it is complicated to create fully stylistically correct combinations which may be preferred when creating documents.

There is also the possibility of simply stacking a (sequence of) medial(s) (jungseong) and then a (sequence of) final(s) (jongseong) and/or a Middle Korean pitch mark, if needed on top of the (sequence of) initial(s) (choseong), if the font has medial and final jamos with zero-width spacing that are inserted to the left of the cursor or caret, thus appearing in the right place below or to the right of the initial. If a syllable has a horizontal medial (, , ,  or ), the initial will probably appear further left in a complete syllable than is the case in pre-formed syllables due to the space that must be reserved for a vertical medial, giving an aesthetically poor appearance to what may be the only way to display Middle Korean hangul text without resorting to images, romanization, replacement of obsolete jamo or non-standard encodings. However, most current fonts do not support this.

The Unicode standard also has attempted to create a unified CJK character set that can represent Chinese (Hanzi) as well as the Japanese (Kanji) and Korean (Hanja) derivatives of this script through the Han unification process, which does not discriminate by language nor region for rendering Chinese characters, as long as the different typographic traditions have not resulted in major differences concerning what the character looks like see :Image:Xin-jiu-zixing.png for examples of characters whose appearance recently underwent only minor changes in Mainland China. Han unification has been met with some criticism.

Text input 

On a Korean computer keyboard, the text is typically entered by simply pressing a key for the appropriate jamo; the operating system creates each composite character on the fly. Depending on the IME and keyboard layout, double consonants can be entered by holding the shift button. When all jamo making up a syllabic block have been entered, the user may initiate a conversion to hanja or other special characters using a keyboard shortcut or interface button; South Korean keyboards have a separate key for this. Subsequent semi-automated hanja conversion is supported to varying degrees in word processors.

When using a keyboard from another language, most operating systems require the user to type using an original Korean keyboard layout, the most common of which is 2(du)-beolsik. This is in contrast to some other languages, like Japanese, where text can be entered using a Romanization system on non-native keyboards.

Not so most operating systems, like Linux, are allowing engine/hangul/hangul-keyboard='ro', that results into a Romaja keyboard, where keying "seonggye" results into 성계. In this configuration, ㄲ is obtained by "gg", and not by shift-g. This allows keying "jasanGun" to obtain 자산군 instead of keying "jasangun" that would provide 자상운.

History of Korean typewriters

Pre-division of Korea
The history of Korean text input is related to the history of Korean typewriters (타자기) before computers. It is unclear what was the first Korean typewriter. According to Jang Bong Seon, Horace Grant Underwood made a Korean typewriter around the 1900s. In 1914, Lee Won Ik, who was living in America, made the "first" typewriter. In 1927, Song Ki Joo invented the first Dubeolsik typewriter while in Chicago, but it does not exist today. However, his 1934 typewriter is stored in the Hangul museum as the oldest existing Korean typewriter. The invention of the typewriter led to the development of other typewriters invented in 1945 by Kim Joon Sung and 1950 by Kong Byung Woo.

Division of Korea
South Korea originally had a Nebeolsik standard but later Dubeolsik became a standard in 1985.

Hanja 
Apart from the conversion issues mentioned above, some Korean fonts do not include hanja to start with. At the same time, current word processors do not allow the user to specify which font to use as a fallback for any hanja that may occur in a text. In that case, each sequence of hanja must be manually formatted to appear in the desired font.

Special situations 
Having text run in vertical lines is supported poorly or not at all by HTML and most word processors, although this is not an issue for modern Korean, as it is usually written horizontally. Until the second half of the 20th century, however, Korean was often written vertically. 15th century texts written in hangul had pitch marks to the left of syllables, which are included in Unicode, although most current fonts do not adequately support them, either.

See the section on character encodings above for obsolete jamo.

Programs 

Notable programs specifically designed for Korean language-related use include:
 Language recognition
 A North Korean speech recognition program is said to recognise 100,000 words and to achieve a success rate of more than 90%.
 Mongnan (; KCC, North Korea) Optical character recognition software with an alleged success rate of 99% for printed text and 95% for handwriting recognition.
 Input method editors
 Tan'gun (; Pyongyang Information Center, North Korea) Allows the use of hangul on English editions of Windows.
 Nalgaeset Hangul Input Method Editor (날개셋 한글 입력기); Kim Yongmook, South Korea) A hangul input method which is especially made for the 3(se)-beolsik keyboard layout (only works on Microsoft Windows).
 Nabi (), ami (; South Korea) Allows to type hangul on Linux.
 m17n Allows to use revised romanization for hangul input on Unix.
 SCIM and iBus Allows one to type hangul and hanja on POSIX-style operating systems including Linux and BSD.
 Word processors All programs listed below include domestic hangul fonts, non-hangul fonts and a hangul-hanja conversion utility.
 Hangul (Haansoft, South Korea)
 Ch'angdŏk (; PIC, North Korea) This popular program exists in an MS-DOS version developed in April 1990  and a Windows version developed in 1996. It includes a peculiar personality cult feature by which pressing  or  produces titles exalting Kim Il-sung and Kim Jong-il, respectively.

Hangul in Unicode 

Hangul letters are detailed in several separate parts of the Unicode specification:

 Hangul Syllables (AC00–D7A3)
 Hangul Jamo (1100–11FF)
 Hangul Compatibility Jamo (3130–318F)
 Hangul Jamo Extended-A (A960–A97F)
 Hangul Jamo Extended-B (D7B0–D7FF)

Hangul Syllables block 
The precomposed hangul syllables in the Hangul Syllables block in Unicode are algorithmically defined, using the following formula:
 [(initial) × 588 + (medial) × 28 + (final)] + 44032

 Initial consonants

 Medial vowels

 Final consonants

For example, if one wants to find the code point of "한" in Unicode:

 The value of initial consonant ㅎ is 18.
 The value of medial vowel ㅏ is 0.
 The value of final consonant ㄴ is 4.

Substituting these values to the formula above, one gets [(18 × 588) + (0 × 28) + 4] + 44032 = 54620. This means that the Unicode value of 한 is 54620 in decimal, &#54620; by the numeric character reference, and U+D55C in hexadecimal Unicode notation.

Hangul Compatibility Jamo block 
Hangul Compatibility Jamo block is part of Unicode which has been allocated for compatibility with the KS X 1001 character set. It is usually used for representing some hangul jamo by itself, without distinguishing initial and final.

Hangul Jamo blocks 
Hangul Jamo, Hangul Jamo Extended-A and Hangul Jamo Extended-B blocks contain initial jamo, medial jamo and final jamo, including obsolete jamo.

Hanyang Private Use Area code 
Hangul (word processor) ships with fonts from Hanyang Information and Communication. Their fonts map obsolete hangul characters to the Private Use Area of Unicode. Despite the use of the Private Use Area instead of dedicated codepoints, Hanyang’s mapping was  the most popular way to represent obsolete hangul in South Korea.

Starting from Hangul 2010, Hancom deprecated Hanyang PUA code and chose to represent obsolete hangul characters using hangul jamo in Unicode.

See also 
 Japanese language and computers
 Vietnamese language and computers
 List of CJK fonts
 McCune–Reischauer
 Yale Romanization of Korean
 Revised Romanization
 New Korean Orthography

References

External links 
 Online Korean Virtual Keyboard
 InputKing Online Input System, an online tool for typing Korean
  
  
 , an online tool for converting Korean text into various coding formats and vice versa

Character encoding
Han character input
Science and technology in Korea
Communications in Korea
computers
Natural language and computing
Korean-language computing