【发布时间】:2017-05-29 13:20:26
【问题描述】:
编辑
因为我似乎不会得到一般问题的答案。我将它限制在一个细节:我对以下内容的理解是否正确?
代理的工作方式如下:
- 如果第一对字节不是在 D800 和 DBFF 之间 - 有 不会是第二对。
- 如果它在 D800 和 DBFF 之间 - a) 会有第二对 b) 第二对将在 DC00 和 DFFF 的范围内。
- 没有值在 D800 之间的单对 UTF16 字符 和 DBFF。
- 没有值在 DC00 之间的单对 UTF16 字符 和 DFFF。
是这样吗?
原始问题
我尝试阅读有关 UTF16 的内容,但似乎无法理解。什么是“平面”和“代理”等? “平面”是第一个字节的前 5 位吗?如果是这样,那么为什么不使用 32 架飞机,因为无论如何我们都在使用这 5 位?什么是代理人?它们分别对应哪些位?
我知道 UTF16 是一种编码 Unicode 字符的方法,它有时使用 16 位编码字符,有时使用 32 位编码,不多不少。我假设前 2 个字节有一些值列表(哪些是最重要的?),这表明将存在第二个 2 个字节。
但是,与其继续我不了解的内容,也许有人可以对此进行排序?
【问题讨论】:
-
@downvoters 也愿意帮忙吗?
-
我怀疑他们是因为“does not show any research effort”。您对UTF-16 FAQ 有任何疑问吗?
-
@TomBlodget 谢谢。我不确定我应该如何展示努力。包括指向我已阅读(但不理解)的文章的链接?这对这个问题有什么帮助?但无论如何,你可能是对的,这就是它被否决的原因。我现在正在阅读您提供给我的链接。谢谢。
-
@TomBlodget 我有点难以理解那里的实际代码(我熟悉 C#,而不是 C)但基本上我明白如果第一对字节在 D800 和 DBFF 之间- 然后需要第二对。但是后面的代理是什么意思?它们似乎表示如果第二对字节在DC00和DFFF之间,则需要第二对字节。当然,这没有任何意义。
标签: text unicode encoding character-encoding language-agnostic