0

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

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

2 回答 2

1

.net 和 JavaScript 都是 UTF-16:

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

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

于 2012-05-30T04:56:42.997 回答
1

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

由于 UTF-16 使用 16 位代码单元,因此代码本身是 16 位代码,但要表示一个字符,您必须更接近您的实际意思:

  1. Unicode 意义上的字符表示Unicode代码点,这可能是您的预期含义。这里有两种情况:

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

于 2012-05-30T04:59:04.457 回答