是否有Unicode编码,其中每个;“字符”;只有一个代码点吗?

是否有Unicode编码,其中每个;“字符”;只有一个代码点吗?,unicode,normalization,utf-16,unicode-normalization,surrogate-pairs,Unicode,Normalization,Utf 16,Unicode Normalization,Surrogate Pairs,尝试重新措辞:您能将每个组合字符组合映射到一个代码点吗 我是Unicode新手,但在我看来,在Unicode中,似乎没有编码、规范化或表示,在每种情况下一个字符都是一个代码点。这是正确的吗 对于基本多语言平面也是这样吗?如果您的意思是一个字符==一个数字(即:每个字符由相同数量的字节/单词/您拥有的内容表示):在UCS-4中,每个字符由一个4字节的数字表示。这对于每个字符都足够大,可以用一个值来表示,但是如果不需要任何更高的字符,这是非常浪费的 如果您指的是兼容序列(即:其中e+'=>é):现有

尝试重新措辞:您能将每个组合字符组合映射到一个代码点吗

我是Unicode新手,但在我看来,在Unicode中,似乎没有编码、规范化或表示,在每种情况下一个字符都是一个代码点。这是正确的吗


对于基本多语言平面也是这样吗?

如果您的意思是一个字符==一个数字(即:每个字符由相同数量的字节/单词/您拥有的内容表示):在UCS-4中,每个字符由一个4字节的数字表示。这对于每个字符都足够大,可以用一个值来表示,但是如果不需要任何更高的字符,这是非常浪费的

如果您指的是兼容序列(即:其中e+'=>é):现有现代语言中使用的大多数组合都有单字符表示。如果你在编自己的语言,你可能会遇到问题……但是如果你坚持人们实际使用的语言,你会没事的

在我看来,在Unicode中,似乎没有编码、规范化或表示,在每种情况下,一个字符都是一个代码点。这是正确的吗

取决于“字符”一词的含义。Unicode具有抽象字符(标准第3章中的定义7:“用于组织、控制或表示文本数据的信息单元”)和编码字符(定义11:“关联(或映射))的概念在抽象字符和代码点之间”)。因此,一个字符从来不是一个代码点,但对于许多代码点,存在一个映射到代码点的抽象字符,这种映射称为“编码字符”。但是(定义11,第4段):“一个抽象字符也可以由一系列代码点表示”

对于基本的多语言平面也是这样吗

BMP和其他平面之间在抽象或编码字符方面没有概念上的差异。上面的语句适用于代码空间的所有子集

根据您的应用程序,您必须区分术语glyph、grapheme cluster、grapheme、抽象字符、编码字符、代码点、标量值、代码单位和字节。所有这些概念都是不同的,它们之间没有简单的映射。特别是,这些实体之间几乎从来没有一对一的映射

你能映射每个组合字符吗 组合成一个代码点

每个组合字符组合?本次提出的编码方式如何将您提出的编码方式表示的字符串如何将您提出的编码方式表示的字符串如何将您提出的编码方式表示的字符串如何如何将您提出的编码方式表示的字符串如何如何将您提出的编码方式表示的字符串如何如何将您提出的编码编码方式表示的字符串“a a a a a a a、a、a、a、a、方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方在7 7 7 7 7 7 7 7 7 7 7月月月月日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日的的的的的的的的本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本“?(一个“a”加上100多个组合标记?)这根本不实用


然而,在Unicode中有许多“预合成”字符,如áçñü。规范化表单C将尽可能使用这些字符,而不是分解版本。

每个Unicode“字符”都只是一个“代码点”。但术语可能会令人困惑。“字符”可以用多种方式解释,因此Unicode提出了“代码点”一词来涵盖“字符”的一种特定含义。现在,“字形”可以由多个“代码点”组成,“代码点”可以编码为多个“代码单元”。在UTF-8中,“代码单元”是8位,而在UTF-16中,“代码单元”是16位。在UTF-32(很少使用)中,不需要区分“代码点”和“代码单位”,但即使这样,您也可以从多个“代码点”中生成一个“字形”。@hippietrail您是指Unicode中的抽象字符吗?我问这个是因为我弄糊涂了…@Eonil:我首先是指字符=代码点,其次是指字符=字形。“你问的是这两个字中的哪一个?”希皮崔:实际上,我问这个字是为了了解什么是抽象人物。这个概念在文档中反复出现,但我真的不知道它到底是什么…你似乎知道它们是什么。事实上,我发现它们在自己的文档中的术语很难阅读,所以我感到你的痛苦。我的评论是基于我多年积累的知识,而不是直接从Unicode的文档中获取的。我是否可以将100%映射保证也转换为NFC规范化形式?没有100%映射保证。碰巧有一些代码点表示在现代语言中看到的组合的预组合。在大多数情况下,NFC更喜欢这些预复合材料。但是如果你有一个字符和重音通常不在一起(例如,
),或者一个字符有一堆重音,那么一个代码点就不能消除它。这是不正确的。在现有的现代语言中,有大量的组合在使用,没有单一的字符表示。特别是在除拉丁语以外的其他语言中,如印度语、泰语、老挝语等。我认为带有尖锐口音的西里尔语元音非常常见,因为它们几乎存在于每一本俄语词典中,但它们没有单一的代码点表示。@hippietrail:这……非常具体。但我注意到,其他类型的口音的西里尔字母确实有单字符形式——暗示Unicode联盟没有考虑西里尔语中足够的急性口音以保证使用代码点。什么时候在字典之外使用尖锐的口音?Unicode显然不是基于“足够普遍”的基础。理想情况下,他们不需要任何新的预合成字符。他们说,他们希望与传统编码兼容,因此他们在常用的传统编码中包含几乎所有的预合成字符,但强烈抵制任何新字符。我