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 个单元格的边界上。

注意

此范围现在由 ConScript Unicode 注册表正式管理。规范参考位于

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