关于Unicode和表示字符所需的位数的混淆
我对Unicode中有1114112个字符感到困惑,但同时我们可以使用UTF-16(使用16位)访问所有字符。我的意思是,他们不需要32位来存储吗关于Unicode和表示字符所需的位数的混淆,unicode,Unicode,我对Unicode中有1114112个字符感到困惑,但同时我们可以使用UTF-16(使用16位)访问所有字符。我的意思是,他们不需要32位来存储吗 我听说它与代理项对有关,但我不知道它们实际上是什么。unicode有不同的编码。UTF-8和UTF-16都使用一个或多个8位或16位blob来表示单个字符,具体取决于任何unicode代码点 另一方面,wchar\u t或16位整数只能表示一些unicode代码点 关于代理项对: http://www.unicode.org/faq/utf_bo
我听说它与代理项对有关,但我不知道它们实际上是什么。unicode有不同的编码。UTF-8和UTF-16都使用一个或多个8位或16位blob来表示单个字符,具体取决于任何unicode代码点 另一方面,wchar\u t或16位整数只能表示一些unicode代码点 关于代理项对:
http://www.unicode.org/faq/utf_bom.html#utf16-4Unicode在历史上是一种16位代码和字符集(在最早的版本中)。这也是UCS-2被创建为编码的时候,通用字符集中的每个字符都是一个2字节的单位 很快就清楚了(也是由于项目范围的一些变化),16位,因此65536个字符太少,无法使用,Unicode扩展到21位,组织在17个平面中,其中第一个65536字符构成第0个,即基本多语言平面(BMP) 同时,BMP中的2048个代码点被作为所谓的高和低替代项留出。其中两个代表另一个平面中的一个角色。这就启用了UTF-16,其中每个代码单元仍然有两个字节长,并且一个或两个代码单元(在后一种情况下,通过组合高代理和低代理)将表示单个代码点。同样,有人宣布,这些代理不得单独出现或顺序错误。代理字符主要是一个奇怪的特性(它们构成Unicode中最大的非字符块),但从技术上讲,代理字符是实现从16位到21位Unicode路径的最干净的方式 无论您听到或想到什么,Unicode在其历史上最长的一段时间内都不是16位代码,目前没有任何东西需要任何16位代码。然而:
先读。然后再问一次是否还有问题。文章不错。但我还是不明白用Unicode将字符存储为两部分的神话?上下?如果你能举个例子解释一下,那就很方便了。如果一个汉字(任何一个)要存储,它将如何存储?它可以以多种方式存储。以蒂姆为例,事实上,我发现乔尔的文章在某些方面相当欠缺。它可能会让一些基本概念变得清晰,但Unicode太复杂了,无法在这么短的文章中概括。请问另一个问题。用一种有用的方式去问它,这样你就能得到答案。老兄,你应该为维基百科写作!不,根据我的知识,我真的不能写出一篇连贯的文章。回答问题容易多了。此外,我只是Unicode邮件列表中的一个潜伏者,那里的许多人知道的比我多得多(如果以上信息是正确的话)。