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)

実際の 16 進数値が 0x24065 (10 進数で 147557) の場合、65533 を返します。

実際のバイト数を数える方法を知っていますか?

4

1 に答える 1

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