在.NET和JavaScript中存储一个字符需要多少字节?

时间:2012-05-30 04:50:54

标签: javascript .net

在一个字符中存储需要多少字节:

  • Microsoft的.NET框架版本4
  • 的实现
  • JavaScript,由Microsoft Internet Explorer 8实现?

2 个答案:

答案 0 :(得分:1)

.net和JavaScript都是UTF-16:

  

将每个Unicode代码点表示为一个或两个16位的序列   整数。最常见的Unicode字符只需要一个UTF-16代码   点,虽然Unicode补充字符(U + 10000和更高)   需要两个UTF-16代理代码点。小端和小端   支持big-endian字节顺序。

所以它可以是16位或32位。

答案 1 :(得分:1)

.NETJavaScript都使用UTF-16。 UTF-16是一种所谓的可变长度编码,它使用16位代码单元来表示Unicode 代码点(它们是21位)长度)。从历史上看,它来自UCS-2当Unicode仍然是一个16位代码(后来被认为是不够的,因此扩展到21位)。

由于UTF-16使用16位代码单元,代码本身是一个16位代码,但为了代表字符,你必须看一下更贴近你的意思:

    Unicode意义上的
  1. 字符意味着 Unicode代码点,这可能是您的意图。以下是两种情况:

    1. U + 0000到U + FFFF范围内的代码点占用两个字节,因为它可以用单个UTF-16代码单元表示(这里代码单元和代码点相同)。
    2. U + 10000到U + 10FFFF范围内的代码点占用四个字节,因为它必须使用两个 UTF-16代码单元来表示。
  2. 通常意义上的字符通常指的是字形,实际上,这就是我们认为的单个字符。那些可以具有任意多个变音符号,或者可以是由渲染引擎由多个代码点形成的连字。在这种情况下,长话短说:这些可以任意长,因为它们可以包含几个代码点。