我想将常规字符串转换为 ASCII 格式
。这是因为我尝试与锁 Controller 通信,但它不能仅读取 ASCII 格式的命令。
下面是代码:
var port = new SerialPort("COM5", {
baudRate: 38400
});
port.on('open', function() {
port.write('close1', function(err) {
if (err) {
return console.log('Error on write: ', err.message);
}
console.log('message written');
});
});
本质上我想确保 close1 以 ASCII 格式而不是字符串格式进行通信。
port.write('close1', function(err) {
最佳答案
假设您正在使用this SerialPort
module ,write
函数接受
Accepts a
Buffer
object, or a type that is accepted by the Buffer constructor (ex. an array of bytes or a string).
当你从字符串构造一个Buffer
时,你可以告诉NodeJS使用什么编码;允许的编码之一是 ascii
(默认为 utf-8
,即字符 32-127 的 ASCII)。
所以:
// NodeJS v4 and earlier
port.write(new Buffer('close1', 'ascii'), function(err) {
if (err) {
return console.log('Error on write: ', err.message);
}
console.log('message written');
});
从 v6 开始,我们应该使用 Buffer.from
来代替:
// NodeJS v6 and later
port.write(Buffer.from('close1', 'ascii'), function(err) {
if (err) {
return console.log('Error on write: ', err.message);
}
console.log('message written');
});
关于javascript - 如何在 JavaScript 中将字符串转换为 ASCII 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39060727/