gianthare: (Default)
[personal profile] gianthare

Короче, я понял, корейский вас интересует больше, чем вечерние купания.
Так вот. Во первых, корейский, хоть и выглядит как кракозябры, на самом деле алфавит. Только, видимо все же под влиянием китайского, буквы группируются в слоги, в смысле буквы/звуки одного слога пишутся один рядом/под другим и вписаны в типа квадрат. Каждый слог состоит примерно из начального согласного, гласного и конечного согласного, примерно, которые пишется один над другим. Один из согласных может отсутствовать, для этого специальное обозначение, по крайней мере для первого. Кстати, корейский алфавит придумал лично какой-то их король в 16-ом веке. До этого они писали более-менее на китайском, как я понимаю. И до сих пор немного (или много, я не смог понять) используют иероглифы.
Что это означает с точки зрения компьютера и программиста? Что нельзя просто показать корейские буквы одна за другой справа налево. А надо их хитро размещать одну рядом/под другой. Причем иногда рядом, иногда под, в зависимости от того, что дальше в слоге.
Простым решением было сделать фонт, в котором каждый слог нарисован уже целиком, и так его и показывать. Коды для этих знаков не случайные, а вполне себе вычислимые: [(initial) × 588 + (medial) × 28 + (final)] + 44032
Последнее 44032 думаю юникодовская добавка.
Вот пример из Википедии:
Чтобы найти код слога "한" in Unicode:
Код начальной согласной (ㅎ) - 18.
Код гласной (ㅏ) - 0.
Код конечной согласной (ㄴ) - 4.
Подставляем в формулу и получаем [(18 × 588) + (0 × 28) + 4] + 44032 = 54620. В Unicode код слога 한 это 54620.
(Я когда-то примерно знал буквы, но забыл, так что я не знаю, какой это слог. Ок, это, оказывается, хан)
Полюбуйтесь, как они нетривиально расположены. Неудивительно, что решили нарисовать весь слог заранее.

Хорошо, а как мы их вводим? А очень просто - по одной букве, ведь это же алфавит. Кстати, для отдельных букв у нас тоже есть символы, хотя реально в корейском тексте отдельные буквы не встречаются. Значит, человек нажимает Х, мы ставим/рисуем Х, дальше человек нажимает А, опа, стираем последнее Х, и пишем вместо этого ХА, человек нажимает Н - стираем ХА и пишем ХАН, т.е. символ Х*588 + А*18 + Н + 44032.
А если он ошибся, хочет исправить и нажал backspace, то стираем символ ХАН, считаем, из каких букв он был составлен, и пишем ХА. Красота.
Казалось бы, в нынешние времена процессору делать в основном нечего и он вполне может сам посчитать и отрендерить ХАН в правильном порядке, так же как он может показать â, закодированный при помощи обычного a, за которым идёт circumflex.
Но нет, ещё 7 лет назад то ли айфон то ли андроид правильно показывал только pre-composed syllables, а отдельные буквы так и показывал по-отдельности.

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

gianthare: (Default)
gianthare

March 2026

S M T W T F S
1234567
8910111213 14
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 15th, 2026 03:23 am
Powered by Dreamwidth Studios