我想知道:在从不Delphi版本中,SizeOf(Char)= 2,但这还不足以存储unicode表中定义的字符的所有整数映射,对吧? (据我所知,有比65536更多的字符)。那么这个问题是如何解决的呢?
也许两个字节用于编码Basic Multilingual Plane(BMP)中的所有字符? 但是BMP之外的角色会发生什么?
有人可以点亮这个吗?
感谢。
答案 0 :(得分:2)
BMP之外的字符串使用代理进行编码,如UTF-16。
答案 1 :(得分:0)
之前,如果您想存储单个字符,可以使用一个Char(AnsiChar)。但是在Unicode中,你不应该在Chars中存储单个UTF-16代码点(在D2009 +中是WideChars),你应该使用字符串,因为它们可以包含一个Char和一个代理对。