在 Node-RED 中,可以使用 Node.js 的 `Buffer` 模块对二进制数据进行解码。以下是一个示例方法,将二进制数据解码为中文字符串:\n\njavascript\nvar decodeBinary = function(binaryData) {\n var buffer = Buffer.from(binaryData); // 将二进制数据转换为 Buffer 对象\n var decodedText = buffer.toString('utf8'); // 使用 utf8 编码解码 Buffer 对象为字符串\n return decodedText;\n};\n\n// 使用示例\nvar binaryData = Buffer.from([228, 184, 150, 229, 155, 189]); // 示例二进制数据,对应中文\"你好\"\nvar decodedText = decodeBinary(binaryData);\nconsole.log(decodedText); // 输出:你好\n\n\n关于为什么默认转换为数字类型,可能是因为 Node-RED 在处理二进制数据时使用了默认的编码方式,将每个字节转换为数字类型。如果要将其转换为中文字符串,需要调用 `toString()` 方法并指定正确的编码方式,如上述示例中的 `utf8` 编码。\n\n另外,Node-RED 中的 `TextDecoder` 类是 Web API 的一部分,用于在 Web 浏览器中解码二进制数据。由于 Node-RED 是基于 Node.js 运行的,与 Web 浏览器环境不同,因此无法直接使用 `TextDecoder` 类。

Node-RED 二进制解码中文:Buffer 解码方法及 TextDecoder 问题

原文地址: https://www.cveoy.top/t/topic/pSxw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录