Unicode 常见术语

转载须注明出处:简书@Orca_J35

以下内容直接翻译自 Unicode 术语表:Glossary of Unicode Terms

Unicode 是一种用数值表示字符的标准,适用于世界上所有的语言,它为不同语言提供了存储、搜索和替换文本的统一方法。Unicode 作为一种标准,其中包含了用于可视化参考的编码图表(code charts)、一组标准字符编码、一组编码方案、一组参考数据文件以及许多相关项目。我们在网络上看到的很多资料会将 Unicode 仅视作一个字符集,这种理解是不正确的。

Unicode 转换格式 (Unicode Transformation Format):是 Unicode encoding formUnicode encoding scheme 的模糊同义词,优先使用后两者。

Unicode 签名 (Unicode Signature):是一个隐式标记,用于将文件标识为包含特定"编码模式"的 Unicode 文本。初始化字节顺序标记(BOM)可用作 Unicode 签名。

Unicode 字符串 (Unicode String):一个"编码单元序列 ",其中包含了特定 Unicode "编码模式"下的"编码单元"。(See definition D80 in Section 3.9, Unicode Encoding Forms.)

Unicode 字符数据库 (Unicode Character Database):有关 Unicode 字符属性和映射关系的规范及详细信息的一组文件。

编码空间 (Codespace):(1) 可用于编码字符的数值范围。(2) 对于 Unicode 标准,编码空间的范围是 0x0 ~ 0x10FFFF。(See definition D9 inSection 3.4, Characters and Encoding.)

字素 (Grapheme):在特定书写系统的背景下,最低限度的独特写作单位。示例:在英文书写系统中 ‹b› 和 ‹d› 是不同的字素,因为它们会形成不同的单词,如 big 和 dig。但是,小写拉丁字母 a 和小写罗马字母 a 并没有明显区别,因为在这两种不同形式的基础上不能区分出不同的单词。 (2) 用户认为的字符

渲染 (Rendering). (1) 为了描绘字符,而选择并布局字形的过程。(2) 在显示设备上显示字形的过程。

传输编码语法 (Transfer Encoding Syntax):应用于文本和其它数据的可逆转换,数据需要经过转换后才允许被传输,例如 Base64 和 uuencode。

字形

字形 (glyph):(1)表示一个或多个"字形图形"的抽象形式。(2)与字形图像(glyph image)同义。在显示 Unicode 字符数据时,可以选择一个至多个字形来描绘特定字符。在合成(composition )和布局(layout)处理期间,会通过渲染引擎选择这些字形。(See also character.)

字形代码 (Glyph Code):用于引用字形的数字代码。通常会通过字形代码来引用字体(font)中包含的字形。字形代码可以是特定字体的本地代码;也就是说,包含相同字形的不同字体可以使用不同的代码。

字形标识符 (Glyph Identifier):与字形代码类似,字形标识符是用于引用字体内字形的标签。字体可以采用本地和全局字形标识符。

字形图像 (Glyph Image):已经点阵化(rasterized)或以其它方式成像到某些显示表面的字形表示的具体图像。The actual, concrete image of a glyph representation having been rasterized or otherwise imaged onto some display surface.

字体 (Font):字形的集合,用于字符数据的可视化描述。字体通常会关联一组参数[例如,size, posture, weight, serifness],在为参数设置特定值后,便会生成一个图像化(imagable)的字形集合。

字符

字符 (Character):(1)在书面语言中具备语义价值的最小组成部分,泛指抽象的意义和[或]形状(shape),而非特定的形状 (see also glyph);然而在编码表(code tables)中,为了便于读者理解,呈现某种形式的视觉表示是必不可少的。(2)抽象字符的同义词。(3)Unicode 字符编码的基本单元。(4) The English name for the ideographic written elements of Chinese origin. [See ideograph (2).]

抽象字符(Abstract Character):用于组织、控制或表示文本数据的信息单元。(See definition D7 in Section 3.4, Characters and Encoding.)。

  • 抽象字符没有具体形式,不应与字形(glyph)混淆
  • 抽象字符不一定与用户认为的“字符”相对应,不应与字素( grapheme )混淆。例如,可能只是字素的一部分,比如一个汉字的部首。

抽象字符序列 (Abstract Character Sequence):一个或多个抽象字符的有序序列(See definition D8 in Section Section 3.4, Characters and Encoding.)

字符集 (Character Set):用于表示文本信息的元素的集合(collection)。可将字符集理解为编码字符集,至少包含了码点和抽象字符。

字符仓库 (Character Repertoire):一个字符集(Character Set)中所包含的字符集合(collection)。

编码字符

已编码字符 (Encoded Character):抽象字符(abstract character)和码点(code point)之间的关联(或映射)[See definition D11 in Section 3.4, Characters and Encoding.]。抽象字符本身没有数值值,但"encoding a character"的步骤会将特定的码点与特定的抽象字符关联。

  • An encoded character is also referred to as a coded character.

  • 虽然"已编码字符"在术语中的正式定义是,抽象字符和码点之间的映射;但非正式地来讲,"已编码字符"可被认为是与为其分配的码点一起使用的抽象字符。

  • 有时,为了与其他标准兼容,单个抽象字符可能会对应多个码点,比如 "Å" 拥有两个对应的码点: U+00C5 和 U+212B。

  • 单个字符也可由一系列码点表示,比如 "Å" 也可被表示为码点序列:U+0041 U+030A,而不再是被映射到单个码点。

    [图片上传失败...(image-b08788-1538236458630)]

已编码字符序列 (Coded Character Sequence):一个或多个码点构成的有序序列。通常,由一系列编码字符组成,但也可能包含非字符(noncharacters)或保留(reserved)码点。(See definition D12 in Section 3.4, Characters and Encoding.) 另外,Coded Character Representation 与 coded character sequence 同义

已编码字符集(coded character set):是一个字符集,其中的每个字符都分配有数值码点,或说每个字符都拥有各自的码点。通常会简写为字符集(character set)、charset、编码集(code set)。A character set in which each character is assigned a numeric code point.

码点

码点(code point):(1) Unicode 编码空间(codespace)中的任意值,也就是说可以是 0 ~ 0x10FFFF 中的任意值。(See definition D10 in Section 3.4, Characters and Encoding.) 不是所有码点都会被分配给已编码字符。(2) 指已编码字符集中某个字符的值或位置。
在 Unicode 标准中,码点采用 16 进制书写,并加上前缀 U+ (例如,拉丁字母 A 的码点是 U+0041 )。Unicode 的码点可以分成 17 个代码级别(code plane):

  • 第一个代码级别被称为基本多语言级别(basic multilingual plane - BMP),码点从 U+0000 到 U+FFFF,其中包括经典的 Unicode 代码;

  • 其余的 16 个级别码点从 U+10000 到 U+10FFFF,其中包括一些辅助字符(Supplementary character)

    tips: 可参考 Code point planes and blocks 可获取更详细的解释

码点类型 (Code Point Type):Unicode 标准中将码点分为 7 种基础类型:Graphic, Format, Control, Private-Use, Surrogate, Noncharacter, Reserved. (See definition D10a in Section 3.4, Characters and Encoding.)

保留码点(Reserved Code Point):Unicode 标准中留作将来使用的码点,也称为未分配码点(unassigned code point)

已指定码点 (Designated Code Point):任何已分配给抽象字符 [assigned characters ] 或已通过标准赋予了规定功能的码点[ surrogate code points and noncharacters ]。该定义排除了保留的代码点。Designated Code Point 与 assigned code point 同义。(See Section 2.4 Code Points and Characters.)

未分配字符(Unassigned Character):未分配给抽象字符的码点,包含代理(surrogate)码点、非字符(noncharacters)以及保留码点。 (See Section 2.4, Code Points and Characters.)

已分配字符 (Assigned Character):已被分配给抽象字符的码点,是指在 Unicode 标准中已编码的字符——graphic, format, control, and private-use characters。(See Section 2.4, Code Points and Characters.)

标量值

Unicode 标量值 (Scalar Value):除开高代理码点(high-surrogate)和低代理码点(low-surrogat )之外的任何 Unicode 码点都是标量值,具体范围是 0x0 ~ 0xD7FF 和 0xE000 ~ 0x10FFFF。代理码点不能通过"编码模式"映射为"编码单元序列",只有标量值可被映射为"编码单元序列"。(See definition D76 in Section 3.9, Unicode Encoding Forms.)

代理

代理字符 (Surrogate Character):错误用词,它是指具有代理码点的已编码字符,不要使用该术语。

代理码点 (Surrogate Code Point):位于 U+D800 ~ U+DFFF 之间的 Unicode 码点属于作代理码点,保留共 UTF-16 使用。UTF-16 使用一对代理编码单元"表示"辅助码点。

代理对 (Surrogate Pair):用于表示单个抽象字符,由包含两个 16-bit 编码单元的序列构成。代理对中的第一个值被称作高代理(high-surrogate)编码单元,第二个值被称作低代理(low--surrogate)编码单元。(See definition D75 in Section 3.8, Surrogates.)

高代理码点 (High-Surrogate Code Point):位于 U+D800 ~ U+DBFF 间的 Unicode 码点属于高代理码点。(See definition D71 in Section 3.8, Surrogates.)

高代理编码单元 (High-Surrogate Code Unit):位于 0xD800 ~ 0xDBFF 间的 16-bit 编码单元,在 UTF-16 中被用作代理对的第一个编码单元。(See definition D72 in Section 3.8, Surrogates.)

低代理码点 (Low-Surrogate Code Point):位于 U+DC00 ~ U+DFFF 间的 Unicode 码点属于低代理码点。(See definition D73 in Section 3.8, Surrogates.)

低代理编码单元 (Low-Surrogate Code Unit):位于 0xDC00~ 0xDFFF 间的 16-bit 编码单元,在 UTF-16 中被用作代理对的第二个编码单元。(See definition D74 in Section 3.8, Surrogates.)

编码单元

编码单元(code unit):也称编码值(Code Value),表示用于处理或交换编码文本的基本单元。Unicode 标准在 UTF-8 编码模式中使用 8-bit 编码单元;在 UTF-16 编码模式中使用 16-bit 编码单元;在 UTF-32 编码模式中使用 32-bit 编码单元。

编码模式

Unicode 编码模式 (Unicode Encoding Form):一组字符编码模式,用于为每个 Unicode 标量值(scalar value)分配一个唯一的"编码单元序列"。Unicode 标准定义了三种 Unicode 编码模式:UTF-8, UTF-16, and UTF-32。(See definition D79 in Section 3.9, Unicode Encoding Forms.)

字符编码模式 (Character Encoding Form):简称编码模式,将字符集中的定义(definition)映射到表示数据的实际编码单元。另外,Encoding Form 与 character encoding form 同义

编码方案

Unicode 编码方案 (Encoding Scheme):是指拥有特定字节序列的 Unicode 编码模式。如果允许的话,会包含字节顺序标记(byte order mark - BOM)。(See definition D94 in Section 3.10, Unicode Encoding Schemes.)

字符编码方案 (Character Encoding Scheme):字符编码模式加上字节序列。Unicode 中有 7 中编码方案:UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE。另外,Encoding Scheme 与 character encoding scheme 同义

字节序列

字节序列 (Byte Serialization):The order of a series of bytes determined by a computer architecture.

字节序列标记 (byte order mark - BOM):Unicode 字符 U+FEFF 用于表示文本的字节顺序(See Section 2.13, Special Characters and Noncharacters, and Section 23.8, Specials.)

Little-endian :A computer architecture that stores multiple-byte numerical values with the least significant byte (LSB) values first. 低字节优先,小端模式

Big-endian. A computer architecture that stores multiple-byte numerical values with the most significant byte (MSB) values first. 高字节优先,大端模式

UTF

转换格式 (Transformation Format):从已编码字符序列到唯一编码序列的映射(typically bytes)。

UTF :Unicode (or UCS) Transformation Format 的缩写。

UTF-2 :UTF-8 的曾用名,现已废弃。

UTF-7 :Unicode (or UCS) Transformation Format, 7-bit 编码模式,由 RFC-2152 详细定义。

UTF-8

UTF-8 :用于文本的多字节编码,会使用 1 ~ 4 个字节来表示任意 Unicode 字符,并且向后兼容 ASCII。网页中的 Unicode 以 UTF-8 为主。

UTF-8 编码模式 (Encoding Form):一种 Unicode 编码模式,会为每个 Unicode 标量值分配一个唯一的无符号字节序列,该序列的长度是 1 ~ 4 字节。下表展示了 UTF-8 中比特位编码方式: (See definition D92 in Section 3.9, Unicode Encoding Forms.)

Scalar Value First Byte Second Byte Third Byte Fourth Byte
00000000 0xxxxxxx 0xxxxxxx
00000yyy yyxxxxxx 110yyyyy 10xxxxxx
zzzzyyyy yyxxxxxx 1110zzzz 10yyyyyy 10xxxxxx
000uuuuu zzzzyyyy yyxxxxxx 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx

UTF-8 编码方案 (Encoding Scheme):一种 Unicode 编码方案,使用与 UTF-8 "编码单元序列"自身完全相同的顺序来序列化"编码单元序列"。(See definition D95 in Section 3.10, Unicode Encoding Schemes.)The Unicode encoding scheme that serializes a UTF-8 code unit sequence in exactly the same order as the code unit sequence itself.

UTF-16

UTF-16 :用于文本的多字节编码,会使用 2 或 4 个字节来表示任意 Unicode 字符,不向后兼容 ASCII 。UTF-16 是许多编程语言中 Unicode 的内部模式,如 Java、C#、JavaScript 以及许多操作系统。

UTF-16 编码模式 (Encoding Form):一种 Unicode 编码模式,会为 U+0000..U+D7FF 和 U+E000..U+FFFF 中的每个 Unicode 标量值分配一个唯一的无符号 16-bit 编码单元(编码单元的值与 Unicode 标量值相等);会为 U+10000..U+10FFFF 中的每个 Unicode 标量值分配一个唯一代理对。下表展示了 UTF-16 中比特位编码方式: (See definition D91 in Section 3.9, Unicode Encoding Forms.)

Scalar Value UTF-16
xxxxxxx xxxxxxxxx xxxxxxxx xxxxxxxx
000uuuuu xxxxxxxx xxxxxxxx 110110wwwwxxxxxx 110111xxxxxxxxxx

UTF-16 编码方案 (Encoding Scheme):该编码方案会将 UTF-16 "编码单元序列"序列化为 big-endian 或 little-endian 格式的字节序列。(See definition D98 in Section 3.10, Unicode Encoding Schemes.)

UTF-16BE :一种 Unicode 编码方案,会将 UTF-16 "编码单元序列"序列化为 big-endian 格式的字节序列。(See definition D96 in Section 3.10, Unicode Encoding Schemes.)

UTF-16LE :一种 Unicode 编码方案,会将 UTF-16 "编码单元序列"序列化为 little-endian 格式的字节序列。(See definition D96 in Section 3.10, Unicode Encoding Schemes.)

UTF-32

UTF-32 :用于文本的多字节编码,会使用 4 个字节来表示任意 Unicode 字符;不向后兼容 ASCII 。

UTF-32 编码模式 (Encoding Form):一种 Unicode 编码模式,会为每个 Unicode 标量值分配一个唯一的无符号 32-bit 编码单元(编码单元的值与 Unicode 标量值相等)。(See definition D90 in Section 3.9, Unicode Encoding Forms.)

UTF-32 编码方案 (Encoding Scheme):该 Unicode 编码方案会将 UTF-32 "编码单元序列" 序列化为 big-endian 或 little-endian 格式的字节序列。(See definition D101 in Section 3.10, Unicode Encoding Schemes.)

UTF-32BE :一种 Unicode 编码方案,会将 UTF-32 "编码单元序列"序列化为 big-endian 格式的字节序列。(See definition D99 in Section 3.10, Unicode Encoding Schemes.)

UTF-32LE :一种 Unicode 编码方案,会将 UTF-32 "编码单元序列"序列化为 little-endian 格式的字节序列。 (See definition D100 in Section 3.10, Unicode Encoding Schemes.)

UCS

UCS - Universal Character Set 通用字符集,由 International Standard ISO/IEC 10646 所规定,与 Unicode 标准相同。

UCS-2 :ISO/IEC 10646 编码模式,使用两个 8 位编码通用字符集,仅限于基本多语言平面,不能编码辅助平面。

UCS-4 :ISO/IEC 10646 编码模式:使用 4 个 8 位编码通用字符集,适用于所有平面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • 字符是用户可以读写的最小单位。计算机所能支持的字符组成的集合,就叫做字符集。字符集通常以二维表的形式存在。二维表的...
    刘惜有阅读 8,068评论 2 14
  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,043评论 0 7
  • 已知花意,未见其花,已见其花,未闻花名。
    D_3c62阅读 130评论 1 1
  • 孩子有负面情绪的时候,大部分大人不是想要帮助她立刻消除(买糖给你吃哦,别哭了/再买一个给你就是了,别伤心/明天我带...
    四叶草hr阅读 185评论 0 0
  • 正念练习 —————— 为了不睡着,记住听语音的内容,早晨听了一遍,刚刚在极其清醒的状态下,又听了一遍,结果我又忘...
    熊大大啊阅读 191评论 0 0