我有一个javascript字符串,当从UTF-8服务器发送时,大约500K.如何在JavaScript中说出它的大小?
我知道JavaScript使用UCS-2,所以这意味着每个字符2个字节.但是,它是否依赖于JavaScript实现?或者在页面编码或内容类型?
我的工作,包括网页套接字和服务器(Node.js的)和客户端(浏览器)之间的数据使用自定义的数据交换(很简单)格式我设置了发送的项目.
我正在发送3位数据,因为我发送的项目都有8种可能性.数据格式如下所示:
0 1
bit index 01234567 8901...
item aaabbbcc cddd...
Run Code Online (Sandbox Code Playgroud)
目前,我正在解析字节中的项目,如下所示:
var itemA = bytes[0] >> 5;
var itemB = (bytes[0] >> 2) & 7;
var itemC = (bytes[0] & 3) << 1 | bytes[1] >> 7;
var itemD = (bytes[1] >> 4) & 7;
Run Code Online (Sandbox Code Playgroud)
就个人而言,这感觉太复杂了.问题是,这只是复杂的,因为我得到以字节为单位,这是8的倍数解析出的3位项目的数据我有位移,做与运算,因为8是不被3整除我有时甚至必须将两个字节的部分组合起来itemC.
将这些数据作为3位组而不是8位组读取会更有效.
我想出的是将所有字节到比特串用.toString(2),然后用.substring得到长度为3子串,并转换回了一些parseInt(bitString, 2),但我想这是不这样做的方式,因为字符串操作很慢,我实际上没有做任何与字符串相关的事情.
是否可以读取例如3的组中的位而不是从字节中解析它们?或者是否有更有效的方法来读取字节外的位?