Unicode 支持¶
上次更新:2005-01-17,版本 1.4
注意:本文档的原始版本在 lanana.org 上作为 Linux Assigned Names And Numbers Authority (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 已保留用于 OS 范围的分配(Unicode 标准将其称为“公司区”,由于这对于 Linux 不准确,我们将其称为“Linux 区”)。选择 U+F000 作为起始点,因为它让直接映射区域从 2 的大幂开始(以防万一需要 1024 个或 2048 个字符的字体)。这使得 U+E000 到 U+EFFF 作为最终用户区。
[v1.2]:Unicode 范围从 U+F000 到 U+F7FF 已硬编码为直接映射到加载的字体,绕过转换表。用户定义的映射现在默认为 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 形成浅水平线。
[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 区域中的 Linux/CSUR 私有分配。
此编码已获得克林贡语学院的认可。如需更多信息,请通过以下网址与他们联系
由于 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 的人员正在推动将 Tengwar 和 Cirth 添加到 Unicode Plane 1; 将克林贡语添加到 Unicode Plane 1 的请求已被拒绝,因此上述编码仍然是官方的。