如何计算一个字符的字节数

编辑:噢。

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) 

返回65533,当真正的hex值是0x24065(十进制中的147557)

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

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