如何理解此规范文本?

How to understand this spec text?

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

Source code is Unicode text encoded in UTF-8. The text is not canonicalized, so a single accented code point is distinct from the same character constructed from combining an accent and a letter; those are treated as two code points. For simplicity, this document will use the unqualified term character to refer to a Unicode code point in the source text.

参考上述文字,以下各部分是什么意思?

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

如果此类问题不适合本站,请告知更适合提出此类问题的地方。

首先了解 Unicode 标准的特定方面很重要。基本上有两种方法来表示像 ë 这样的重音字符。一个是单码位 U+00EB(带分音符的拉丁文小写字母 E),第二个是双码位 ̈e 即简单码位 U+0065(拉丁文小写字母 E,a常规字母 e) 与另一个代码点 U+0308(组合分音符)。

现在实际上,这两个字符是一样的。它们只是构造不同。这导致了一个名为 Unicode equivalence 的概念,它将这两组代码点规范化(或规范化)为等价。

The text is not canonicalized, so a single accented code point is distinct from the same character constructed from combining an accent and a letter

这意味着上面的两个重音字母 ë̈e 在语言规范中是不等价的。第一个是 "single accented code" U+00EB,而后者是字母 e 加上组合变音符号。


For simplicity, this document will use the unqualified term character to refer to a Unicode code point in the source text

只是说"We're defining for this document only the term 'character' to mean a single Unicode code point."这是为了阅读方便,并没有在语言规范中定义任何东西,因此是"unqualified."