Unicode 支持¶
最后更新:2005-01-17,版本 1.4
注意:本文档的原始版本曾由 lanana.org 维护,作为 Linux 分配名与编号机构(LANANA)项目的一部分,现已不复存在。因此,主线 Linux 内核中的这个版本现在是维护的主文档。
简介¶
Linux 内核代码已被重写,以使用 Unicode 将字符映射到字体。通过下载单个 Unicode 到字体的映射表,八位字符集和 UTF-8 模式都将更改为使用指定的字体。
这微妙地改变了八位字符表的语义。这四个字符表现在是
映射符号 |
映射名称 |
转义代码 (G0) |
|---|---|---|
LAT1_MAP |
Latin-1 (ISO 8859-1) |
ESC ( B |
GRAF_MAP |
DEC VT100 伪图形 |
ESC ( 0 |
IBMPC_MAP |
IBM 代码页 437 |
ESC ( U |
USER_MAP |
用户定义 |
ESC ( K |
特别是,ESC ( U 不再是“直接到字体”,因为该字体可能与 IBM 字符集完全不同。例如,这允许在加载 Latin-1 字体的同时使用块图形。
请注意,尽管这些代码类似于 ISO 2022,但无论是代码本身还是其用途都不符合 ISO 2022;Linux 有两个 8 位代码(G0 和 G1),而 ISO 2022 有四个 7 位代码(G0-G3)。
根据 Unicode 标准/ISO 10646,U+F000 到 U+F8FF 的范围已被保留用于操作系统范围内的分配(Unicode 标准将其称为“企业专区”,由于这对 Linux 来说不准确,我们称之为“Linux 专区”)。之所以选择 U+F000 作为起点,是因为它能让直接映射区域从一个较大的 2 的幂开始(以防将来需要 1024 或 2048 个字符的字体)。这使得 U+E000 到 U+EFFF 成为最终用户区。
[v1.2]:从 U+F000 到 U+F7FF 的 Unicode 范围已被硬编码为直接映射到加载的字体,从而绕过了转换表。现在用户定义的映射默认为 U+F000 到 U+F0FF,以模拟先前的行为。实际上,这个范围可能会更短;例如,vgacon 只能处理 256 字符(U+F000..U+F0FF)或 512 字符(U+F000..U+F1FF)的字体。
Linux 专区中实际分配的字符¶
此外,还定义了 Unicode 1.1.4 中不存在的以下字符;这些字符由 DEC VT 图形映射使用。[v1.2] 此用法已过时,不应再使用;请参见下文。
U+F800 |
DEC VT 图形水平线扫描线 1 |
U+F801 |
DEC VT 图形水平线扫描线 3 |
U+F803 |
DEC VT 图形水平线扫描线 7 |
U+F804 |
DEC VT 图形水平线扫描线 9 |
DEC VT220 使用 6x10 字符矩阵,这些字符在 DEC VT 图形字符集中形成了平滑的渐变。我省略了扫描线 5,因为它也被用作块图形字符,因此已被编码为 U+2500 FORMS LIGHT HORIZONTAL。
[v1.3]:这些字符已正式添加至 Unicode 3.2.0;它们被添加在 U+23BA、U+23BB、U+23BC、U+23BD。Linux 现在使用这些新值。
[v1.2]:添加了以下字符以表示常见的键盘符号,由于它们严重依赖于特定供应商,因此不太可能被正式加入 Unicode 中。当然,这是一个糟糕设计的绝佳例子。
U+F810 |
键盘符号 飞行旗 |
U+F811 |
键盘符号 下拉菜单 |
U+F812 |
键盘符号 空心苹果 |
U+F813 |
键盘符号 实心苹果 |
克林贡语支持¶
1996 年,Linux 成为世界上第一个添加对人造语言克林贡语(由马克·奥克兰德为“星际迷航”电视剧创造)支持的操作系统。该编码后来被 ConScript Unicode 注册表采纳,并被提议纳入 Unicode 第 1 平面(但最终被拒绝)。因此,它作为 Linux/CSUR 的私有分配保留在 Linux 专区中。
该编码已得到克林贡语研究所的认可。有关更多信息,请联系:
由于 Linux CZ 开头的字符更多属于杂锦符号/符号/表格绘制类型,而克林贡语是一种语言,为了符合标准的 Unicode 惯例,我将其放在了末尾,处于 16 个单元格的边界上。
克林贡语拥有由 26 个字符组成的字母表,一个包含 10 个数字的位置数字书写系统,并且按从左到右、从上到下的顺序书写。
有人提出了几种克林贡语字母的字形。然而,由于这组符号在整体上似乎是一致的,只是实际形状有所不同,为了符合标准的 Unicode 惯例,这些差异被视为字体变体。
U+F8D0 |
克林贡语字母 A |
U+F8D1 |
克林贡语字母 B |
U+F8D2 |
克林贡语字母 CH |
U+F8D3 |
克林贡语字母 D |
U+F8D4 |
克林贡语字母 E |
U+F8D5 |
克林贡语字母 GH |
U+F8D6 |
克林贡语字母 H |
U+F8D7 |
克林贡语字母 I |
U+F8D8 |
克林贡语字母 J |
U+F8D9 |
克林贡语字母 L |
U+F8DA |
克林贡语字母 M |
U+F8DB |
克林贡语字母 N |
U+F8DC |
克林贡语字母 NG |
U+F8DD |
克林贡语字母 O |
U+F8DE |
克林贡语字母 P |
U+F8DF |
克林贡语字母 Q - 在标准奥克兰德拉丁语转写中写作 <q> |
U+F8E0 |
克林贡语字母 QH - 在标准奥克兰德拉丁语转写中写作 <Q> |
U+F8E1 |
克林贡语字母 R |
U+F8E2 |
克林贡语字母 S |
U+F8E3 |
克林贡语字母 T |
U+F8E4 |
克林贡语字母 TLH |
U+F8E5 |
克林贡语字母 U |
U+F8E6 |
克林贡语字母 V |
U+F8E7 |
克林贡语字母 W |
U+F8E8 |
克林贡语字母 Y |
U+F8E9 |
克林贡语字母 声门塞音 |
U+F8F0 |
克林贡语数字 零 |
U+F8F1 |
克林贡语数字 一 |
U+F8F2 |
克林贡语数字 二 |
U+F8F3 |
克林贡语数字 三 |
U+F8F4 |
克林贡语数字 四 |
U+F8F5 |
克林贡语数字 五 |
U+F8F6 |
克林贡语数字 六 |
U+F8F7 |
克林贡语数字 七 |
U+F8F8 |
克林贡语数字 八 |
U+F8F9 |
克林贡语数字 九 |
U+F8FD |
克林贡语逗号 |
U+F8FE |
克林贡语句号 |
U+F8FF |
克林贡语帝国符号 |
其他虚构与人造文字¶
自分配克林贡语 Linux Unicode 区块以来,John Cowan <jcowan@reutershealth.com> 和 Michael Everson <everson@evertype.com> 建立了一个虚构和人造文字注册表。可以通过以下网址访问 ConScript Unicode 注册表:
所使用的范围落在使用端区的低端,因此无法进行规范性分配,但为了互操作性,建议希望编码虚构文字的人使用这些代码。对于克林贡语,CSUR 已经采用了 Linux 的编码。CSUR 的成员正在推动将腾哥亚文和色斯文加入 Unicode 第 1 平面;将克林贡语加入 Unicode 第 1 平面的提议已被拒绝,因此上述编码仍然是官方的。