![]() |
1
1
根据 UTF-16 U+0000到U+D7FF:2字节。 U+E000到U+FFFF:2字节。
特别说明
:虽然是一个字符,但实际上它是以两个字符存储在C字符串中的。以下情况属实:
U+110000及以上:不应编码,也似乎不在C#中编码。例如,这不起作用:
如果我们假设任何给定的字符分别占用2或4个字节(由于编码器的行为,我现在还不能确定这个字节),那么接下来简单的数学证明两个偶数除以两个仍然是偶数。偶数是2的倍数,写为:
上面的公式总是可以被2整除,如
|
![]() |
2
0
我认为在代码点和字节数上,或者在如何组合字符来创建字符串上,您可能有点误导。有
Unicode有“平面”来描述字符(为了解决这个问题,假设UTF-16,因为这些范围随UTF-8和UTF-32的变化而变化)。字节的特定组合创建“对”,虽然它们仍然表示一个字符,但实际上需要4个字节来描述。
在UTF-16中,这些字符的码位值高于
因此,虽然字节数可能略有变化(尽管可以预见),但值始终是偶数,它们要么是2,要么是4。 |
![]() |
M - · 为什么两个相同的表情符号不相等? 2 年前 |
![]() |
Mohsen · 将字符串从Windows 1256转换为UTF-8 7 年前 |
![]() |
AMINA ARSHAD · 从字符转换为Unicode数字时出错 7 年前 |
![]() |
Taqwa · 在C#[已关闭]中将上标转换为Unicode 7 年前 |