在Unicode字符串中,如何指示平面(或者它们不是)?

时间:2011-03-29 21:43:48

标签: unicode plane

我已阅读乔尔的文章,并做了很多搜索。关于Unicode的每个站点和文章都讨论了每个代码点如何有16位,但Unicode支持使用Unicode平面的2 ^ 16个代码点。

但没有人解释Unicode字符串如何表示该平面。此外,这留下了一个问题,即Unicode字符串如何容纳来自多个平面的字符。

那么,如何用Unicode字符串表示平面?

2 个答案:

答案 0 :(得分:2)

有人可以随意纠正我,我自己也在学习Unicode。

我认为你的困惑在于代码点和编码如何代表代码点。每个代码点的位/字节数取决于您的编码。我们来看一下UTF-32最简单的例子。 UTF-32使用,鼓滚,请 - 每个代码点32位。它可以直接表示每个平面中的每个Unicode字符。 UTF-16是可变长度编码。它在一个或两个代码单元中对每个代码点进行编码。第一个平面使用单个代码单元表示。其余的,你可以在这里阅读更多相关信息。 http://en.wikipedia.org/wiki/UTF-16http://en.wikipedia.org/wiki/UTF-8

实质上,如果编码支持特定的平面,它们就在那里并在编码中表示。在UTF-32的情况下,它比其他情况更清楚。

答案 1 :(得分:2)

我在一本开源项目的手册中写了一章解释了这个主题(和其他一些Unicode问题)。这是PDF manual的链接(阅读第10章)。以下是本手册HTML version中该章的链接。