Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么长度为3的字符串的字节长度为3?_Javascript_Node.js_Byte_Buffer - Fatal编程技术网

Javascript 为什么长度为3的字符串的字节长度为3?

Javascript 为什么长度为3的字符串的字节长度为3?,javascript,node.js,byte,buffer,Javascript,Node.js,Byte,Buffer,何时,为什么会出现以下情况: Buffer.from("abc").byteLength 输出3?它不应该是6 Javascript类缓冲区的默认编码是“utf-8”。可以看到,在utf-8编码中,ASCII字符占用1个字节。所以结果应该是3。注意:Utf-8编码一个字符可能需要1~3个字节。我认为默认编码是Utf-8,如果是这样,那么每个字符至少需要8个字节。一个可能对你有更多帮助的链接。“那些神奇的U+数字,在内存中使用8位字节。在UTF-8中,0-127之间的每个代码点都存储在一个字节中

何时,为什么会出现以下情况:

Buffer.from("abc").byteLength

输出
3
?它不应该是
6

Javascript类缓冲区的默认编码是“utf-8”。可以看到,在utf-8编码中,ASCII字符占用1个字节。所以结果应该是3。注意:Utf-8编码一个字符可能需要1~3个字节。

我认为默认编码是Utf-8,如果是这样,那么每个字符至少需要8个字节。一个可能对你有更多帮助的链接。“那些神奇的U+数字,在内存中使用8位字节。在UTF-8中,0-127之间的每个代码点都存储在一个字节中。只有128及以上的代码点使用2、3存储,实际上最多使用6个字节。”如果您指的是数组的from()方法和ArrayBuffer的ByTeleLength属性,然后我认为解释是,3个条目是从一个包含3个字符的字符串创建的,因为3个字符的字符串的长度是3(3个代码单位)。如果ArrayBuffer是Uint8Array,则为“abc”创建3个字节。如果改用Uint16Array,则从“abc”创建6个字节。试用警报(新Uint8Array(Array.from(“sss”)).ByTeleLength)与警报(新Uint16Array(Array.from(“sss”).ByTeleLength)