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 的请求已被拒绝,因此上述编码仍然是官方的。