【问题标题】:How to understand this spec text?如何理解这个规范文本?
【发布时间】:2020-03-27 15:19:46
【问题描述】:

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

源代码是以 UTF-8 编码的 Unicode 文本。文本未规范化,因此单个重音代码点与由重音和字母组合构造的相同字符不同;这些被视为两个代码点。为简单起见,本文档将使用不合格的术语字符来指代源文本中的 Unicode 代码点。

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

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

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

【问题讨论】:

    标签: go language-specifications


    【解决方案1】:

    首先要了解 Unicode 标准的特定方面,这一点很重要。基本上有两种方法可以表示像ë 这样的重音字符。一个是单码点U+00EB(带分音符号的拉丁小写字母E),第二个是两个码点̈e,也就是简单码点U+0065(拉丁文小写字母E,普通字母e)与另一个代码点 U+0308(结合 Diaeresis)。

    现在实际上,这两个字符是相同的。它们只是构造不同。这就引出了一个名为Unicode equivalence 的概念,它将这两组代码点标准化(或规范化)为等效。

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

    这意味着上面的两个重音字母ë̈e 在语言规范中是不等价的。第一个是“单重音代码”U+00EB,后者是字母e结合一个组合变音符号。


    为简单起见,本文档将使用不合格的术语字符来指代源文本中的 Unicode 代码点

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

    【讨论】:

    • 我认为你把基本字符和组合标记的顺序搞混了:组合标记跟随基本字符。
    • @Volker 啊我并不是要暗示顺序,但我想我强烈暗示了。我在一个错误的地方颠倒了它(它的顺序相反)
    • 没问题,现在答案很完美。
    猜你喜欢
    • 1970-01-01
    • 2017-01-25
    • 2013-05-10
    • 2017-06-23
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多