首页 > 解决方案 > 如何确定 Javascript UTF-16 字符串的字节大小

问题描述

在 Firefox 插件中,我将冗长的字符串缓存到磁盘。我希望能够让用户了解这些字符串占用了多少字节的磁盘空间。

我了解 Javascript 将字符串存储为 UTF-16。如果将 UTF-8 字符串保存在变量中,则会将其转换为 UTF-16。所以确定字符串大小的 UTF-8 方法不会在这里做。

从这个参考:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length#Description

它指出 的值string.length实际上是 UTF-16 代码单元的数量,而不是字符的数量。

由此我推断以字节为单位的磁盘空间将只是string.length * 2. 我正在寻找关于我的假设是否正确的确认。

编辑:

(对标题和原文进行了几处编辑。另外,以下内容:)

有人建议这是一个 JavaScript 字符串中多少字节的副本?. 但是,这并没有解决我的问题,因为它指的是获取 UTF-8 字符串的字符串大小的方法,但是 Javascript 在存储它们时会将 UTF-8 字符串转换为 UTF-16。例如,占用 3 个字节的 UTF-8 字符在转换为 UTF-16 时可能只使用 2 个字节(1 个 UTF-16 代码单元)。

标签: javascriptstring

解决方案


推荐阅读