java uint8array_php字符串转数组等效于js的new Uint8Array(readAsArrayBuffer)

php版本

$arr = str_split($LFVData);

$decArr = [];

foreach ($arr as $value) {

$decArr[] = hexdec(bin2hex($value));

}

$arr = $decArr;

...

js原版

// 放置解析好的 lfv数据

let lfvResult = [];

// 创建文件的读取器

var reader = new FileReader();

// 开始读取blob数据 ==>LFVData

try {

reader.readAsArrayBuffer(LFVData);

} catch (error) {

let type = Object.prototype.toString.call(LFVData);

console.log("parseLFVData==>error");

console.log('result==>' + type)

console.log(error);

}

// 读取完成

reader.onload = function (evt) {

if (evt.target.readyState == FileReader.DONE) {

var readAsArrayBuffer = evt.target.result;

//Int8Array 1 8 位二补码有符号整数

//Uint8Array 1 8 位无符号整数

// var ret = "";

// 二进制数组

var arr = new Uint8Array(readAsArrayBuffer);

}

}

...

说明

最近找到个websocket接口的行情数据,用workerman连上后数据无法解析,然后找同事写了上面那段代码。

涉及进制转换的部分php都有相应的系统函数,如bindec、decbin、base_convert等,按 MDN 和 php.net 对照着写就行。 在js中,websocket拿到的是blob数据,在workerman中onMessage给过来的$message是字符串(等效于js的readAsText)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值