我不知道';我不理解计算/javascript的字符串到字节方面

我不知道';我不理解计算/javascript的字符串到字节方面,javascript,string,byte,Javascript,String,Byte,两年后回到这个/另一个话题,我看到人们在讨论同样的话题;我还是不明白发生了什么事 在这一职位之后: 我想了解javascript的这一部分!在我将比特币交易推送到区块链之前,我还对计算比特币交易的kb大小感兴趣。但更重要的是,我最终明白了这些用户在做什么,因为它出现了不止一次,我就是不明白 我已经尝试了其中三个函数的答案,但它们似乎都只返回string.length,而我希望它们返回不同的值(字符串的开销,以字节/千字节/兆字节为单位) 这对我来说毫无意义,真烦人!显然,这些人不会谈论如何用s

两年后回到这个/另一个话题,我看到人们在讨论同样的话题;我还是不明白发生了什么事

在这一职位之后:

我想了解javascript的这一部分!在我将比特币交易推送到区块链之前,我还对计算比特币交易的kb大小感兴趣。但更重要的是,我最终明白了这些用户在做什么,因为它出现了不止一次,我就是不明白

我已经尝试了其中三个函数的答案,但它们似乎都只返回string.length,而我希望它们返回不同的值(字符串的开销,以字节/千字节/兆字节为单位)

这对我来说毫无意义,真烦人!显然,这些人不会谈论如何用string.length轻松获得一些东西。那么,他们在尝试什么并成功地返回呢?


字符串应该是二进制的吗?(像这样:)

您正在使用基本ascii字符进行测试(它们是utf8,但您可以认为它们有点像ascii,并且这些字符在两种编码中的工作方式非常相似)。尝试使用扩展字符


console.log((新的TextEncoder('utf-8').encode('您正在使用基本ascii字符进行测试(它们是utf8,但您可以认为它们有点像ascii,并且这些字符在两种编码中的工作方式非常相似)。请尝试使用扩展字符


console.log((新的textcoder('utf-8'))。encode('p>世界上有很多不同的符号。 它们不适合一个字节的数据。这就是为什么一些字符使用多个字节的数据。
一些例子:“Äüöś”

世界上有很多不同的符号。 它们不适合一个字节的数据。这就是为什么一些字符使用多个字节的数据。
一些例子:“Äüöś”

有一些特殊字符占用超过一个字节的空间。试试“Äpfel”。维基百科关于UTF的文章描述了我写的这篇文章是如何作为回答的JavaScript使用UCS-2的,这是成为Unicode 1.1的标准,只允许16位(两个字节)编码。最新版本的Unicode实际上每个字符可以使用七个字节。有些特殊字符占用超过一个字节的空间。试试“Äpfel”。维基百科关于UTF的文章描述了我写的这篇文章是如何作为回答的JavaScript使用UCS-2的,UCS-2是Unicode 1.1的标准,只允许16位(两字节)编码。最新版本的Unicode实际上每个字符可以使用七个字节。注意:内部JavaScript每个字符使用两个字节,而不是一个。这让它可以使用UTF-16…很高兴知道。谢谢:内部JavaScript每个字符使用两个字节,而不是一个。这让它可以使用UTF-16…很高兴知道。谢谢
function byteCount(s) {
    return encodeURI(s).split(/%..|./).length - 1;
    }

console.log(byteCount('hello'),'hello'.length);//5,5


function getLengthInBytes(str) {
    var b = str.match(/[^\x00-\xff]/g);
    return (str.length + (!b ? 0: b.length)); 
    }

console.log(getLengthInBytes('hello'),'hello'.length);//5,5


console.log((new TextEncoder('utf-8').encode('hello')).length,'hello'.length);//5,5