我不知道怎么可能,但是当我使用以下方式执行转换时:
String.fromCharCode(buffer[i])
它正在转换为这样一个奇怪的值:
如果我传递值:179(十进制),当我检查此代码生成的十六进制值时,它生成值194(C2十六进制)。
我有点困惑,因为我不知道为什么会发生这种情况。
以下是代码:
if ((topic != "") && (message != "")){
var buffer = "";
buffer = message.split(",");
console.log("Buffer: " + buffer);
// &#
var msg = "";
for (i = 0;i < buffer.length;i++){
msg = msg + String.fromCharCode(0 + buffer[i]);
}
client.publish(topic, msg);
}
观察:
当我传递值&lt; 127它就像一个魅力,但价值观>它不起作用。
如果有人帮助我更好地了解它是如何运作的,我会感激不尽。
答案 0 :(得分:0)
我使用此解决方案解决了我的问题:
if ((topic != "") && (message != "")){
var buffer = "";
buffer = message.split(",");
console.log("Buffer: " + buffer);
var sendBuffer = new Buffer(27);
for (i = 0; i < buffer.length; i++){
sendBuffer[i] = buffer[i];
}
var messageBuffer = new Buffer(sendBuffer);
// &#
client.publish(topic, messageBuffer);
}