如果我在JavaScript中有一个字符串什么是计算字符串占用的字节数或位数的最佳方法?我的第一个想法是,由于EcmaScript规范(5.1)在8.4中声明EcmaScript中的字符串元素由16位值组成,并且语言使用UTF-16字符编码,所以我应该得到该代码的十进制表示形式(charCodeAt),除以2,结果为底,Bob是你父亲的兄弟。有谁知道如何计算字符串中的字节数?
但如果我每个字符转换为二进制(的toString(2)),以数位,我算的0和1的?或者只是1的?
从我在线阅读(和信息是稀疏的),我想这是这样的:
Math.floor("A".charCodeAt(0)/2); // 32 bits... No?
这是相当混乱。在M字节符号的字母表上长度为N的字符串需要N×M个字节来表示......这很简单。它需要多个位的8倍。 – Patrick87
@shelman是的,但我是否计算0和1的二进制数?或者只是1,因为1代表“开”状态,而0代表“关”状态。 – Tom
UTF-16不是固定宽度编码(http://unicode.org/faq/utf_bom.html#utf16-1)。一个字符可以占用16位或32位,但通常它可以放入16位。 – Krab