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]: 从 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 形式浅水平。
[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 是世界上第一个为人工语言克林贡语添加支持的操作系统,克林贡语由 Marc Okrand 为“星际迷航”电视剧创作。 这种编码后来被 ConScript Unicode Registry 采用,并被提议(但最终被拒绝)包含在 Unicode 平面 1 中。因此,它仍然是 Linux/CSUR 在 Linux 区中的私有分配。
此编码已获得克林贡语研究所的认可。 如需更多信息,请通过以下方式与他们联系
由于 Linux CZ 开头的字符更多的是装饰物/符号/形式类型,而这是一种语言,因此我将其定位在末尾,保持与标准 Unicode 惯例一致的 16 单元格边界上。
注意
此范围现在由 ConScript Unicode Registry 正式管理。 规范性参考是
克林贡语有 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 - 在标准 Okrand 拉丁语音译中写为 <q> |
U+F8E0 |
克林贡字母 QH - 在标准 Okrand 拉丁语音译中写为 <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 Registry 可在以下网址访问
使用的范围落在最终用户区低端,因此不能进行规范分配,但建议希望对虚构脚本进行编码的人使用这些代码,以实现互操作性。 对于克林贡语,CSUR 采用了 Linux 编码。 CSUR 人员正在推动将 Tengwar 和 Cirth 添加到 Unicode 平面 1 中;将克林贡语添加到 Unicode 平面 1 的请求已被拒绝,因此上述编码仍然是官方的。