5

我想知道:SizeOf(Char) = 2 in never Delphi 版本,但这不足以存储 unicode 表中定义的字符的所有整数映射,对吧?(据我所知,字符数超过 65536)。那么这个问题是如何解决的呢?

也许两个字节用于编码基本多语言平面(BMP)中的所有字符?但是 BMP 之外的字符会发生什么?

有人可以解释一下吗?

谢谢。

4

2 回答 2

2

BMP 之外的字符串使用代理项进行编码,就像在 UTF-16 中一样。

于 2012-08-22T17:11:22.537 回答
0

以前,如果要存储单个字符,可以使用单个 Char (AnsiChar)。但在 Unicode 中,您不应该在 Chars 中存储单个 UTF-16 代码点(在 D2009+ 中是 WideChars),您应该使用字符串,因为它们可以包含单个 Char 以及代理对。

于 2012-08-22T23:06:15.240 回答