2

编辑:哎呀。

console.log (Buffer.byteLength ("", "utf8")); //--> 3

我想计算一个字符的字节数。这就是我所拥有的:

var charBytesLength = function (c){
    var n = 0;
    c = c.charCodeAt (0);
    do{
        c = c >>> 8;
        n++;
    }while (c);
    return n;
};

如果字符使用 UTF8 编码,对于超过 2 个字节的字符,该函数始终返回 2,因为在 Javascript 中,字符是一个 16 位值,并且charCodeAt()只返回 0 到 65535 之间的值。

例如:

"".charCodeAt (0)

当真正的十六进制值为 0x24065(十进制为 147557)时,返回 65533

你知道如何计算实际字节数吗?

4

1 回答 1

2
console.log (Buffer.byteLength ("", "utf8")); //--> 3
于 2012-05-13T12:50:55.490 回答