如何理解这个规范文本?

def*_*ogr 3 go language-specifications

我想通过阅读 Golang 规范来提高我对 Golang 的了解,但英语不是我的母语;而且,我不完全理解以下文字的含义:

源代码是采用 UTF-8 编码的 Unicode 文本。文本未规范化,因此单个重音代码点不同于由重音和字母组合而成的同一字符;这些被视为两个代码点。为简单起见,本文档将使用非限定术语字符来引用源文本中的 Unicode 代码点。

参考上面的文字,下面的部分是什么意思?

  1. 文本未规范化
  2. 单重音代码
  3. 引用源文本中的 Unicode 代码点的非限定术语字符

如果此类问题不适合本网站,请建议更合适的地方来提出此类问题。

Ada*_*ith 5

首先了解 Unicode 标准的特定方面非常重要。本质上有两种方法来表示重音字符,例如\xc3\xab。第一个是单代码点U+00EB(带有分音符的拉丁小写字母 E),第二个是两个代码点\xcc\x88e,即简单代码点U+0065(拉丁小写字母 E,常规字母e)与另一个代码点U+0308(组合分音符)。

\n\n

现在生效,这两个角色是相同的。它们只是构造不同。这导致了一个称为Unicode 等效的概念,它将这两组代码点标准化(或规范化)为等效的。

\n\n
\n

文本未规范化,因此单个重音代码点不同于由重音和字母组合而成的同一字符

\n
\n\n

这意味着两个带重音的字母\xc3\xab\xcc\x88e以上在语言规范中并不等效。第一个是“单重音代码” U+00EB,后者是字母e与组合变音符号的组合。

\n\n
\n\n
\n

为简单起见,本文档将使用非限定术语字符来引用源文本中的 Unicode 代码点

\n
\n\n

它只是说“我们为本文档仅定义术语“字符”来表示单个 Unicode 代码点。” 这是为了便于阅读,而不是在语言规范中定义任何内容,因此它是“不合格的”。

\n