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

注意

该范围现在由 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 的成员正在推动将腾哥亚文和色斯文加入 Unicode 第 1 平面;将克林贡语加入 Unicode 第 1 平面的提议已被拒绝,因此上述编码仍然是官方的。