在 Unicode 中,中文、日文和韩文 (CJK) 文字具有共同的背景,统称为 CJK 字符。
这些范围通常包含未分配或保留的代码点(例如 U+2E9A 、 U+2EF4 - 2EFF)
许多其他语言环境从 SDL 的 Unicode 支持中获得了足够的支持
支持“开箱即用”,没有输入法层。
因此输入法对CJK用户才有意义(表意语言)
其他语言用户, 能够直接从标准键盘输入字符和单词
CJK用户, 可以通过键盘按键,重定向到该输入法,它将使用这些键然后生成一些候选文本,然后用户可以使用数字键选择哪个,然后,一个文本输入事件将被发送到该应用程序。
因此对于其他语言只有键盘的概念,对于CJK用户才有输入法的概念。只要键盘按键能够对应所有的字符,就不需要输入法。
因此如果CJK用户想不使用输入法,就需要发明一种有几万个按键,每个按键能代表一个字的键盘。
输入法分为两部分,输入法框架和输入法引擎input method framework and input method engine
输入法框架旨在充当守护进程并处理用户输入事件,将结果输出到目标应用程序或层。
输入法引擎是一个程序,用于分析输入的字符并计算出可能的结果列表,然后将结果发送到其托管的输入法框架,以完成与用户和应用程序的反应。