繁体   English   中英

如何在客户端将Node.js缓冲区转换为整数?

[英]How to convert Node.js buffer to integer in the client-side?

我正在尝试将一个整数存储到node.js缓冲区中,然后通过bleno将其发送到客户端:

var num = 24;
var buf = new Buffer(1);
buf.writeUInt8('0x' + num, 0);
//send buf using bleno

然后,使用以下代码在客户端将其转换为字符串:

function bytesToString(buffer) {    
  return String.fromCharCode.apply(null, new Uint8Array(buffer));
}

问题在于我没有收回原始价值(24)。 相反,它返回的是'#'字符串。 我也在这里尝试了解决方案: 在字符串和ArrayBuffers之间转换,但是我得到了中文字符或unicode字符。

这是我之前在Node.js方面所做的事情,并且上面的bytesToString函数没有任何问题,可以正常工作:

new Buffer(num.toString());

但是要求指定我应该发送整数或浮点数而不将其转换为字符串。 这可能吗? 有什么想法我做错了吗? 提前致谢。

执行此操作时:

buf.writeUInt8('0x' + num, 0);

您已经通过将其与'0x' + num另一个字符串连接而将其转换为字符串,因此无论您以后做什么,此刻它都已转换为字符串-可能是错误的字符串,因为您要在数字的十六进制前缀,默认情况下会转换为十进制。

您在这里所做的是序列化数字的一种非常复杂且不正确的方法,该数字可以轻松地转换为JSON。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM