这个问题可能是由于编码问题引起的。如果 C++ 代码返回的字符串是 UTF-8 编码的,而 JavaScript 使用的是默认的 UTF-16 编码,那么就会出现乱码问题。

解决方法是在 C++ 代码中将字符串转换为 UTF-16 编码,然后再将其传递给 JavaScript。可以使用 MultiByteToWideChar 函数或者 iconv 库来进行编码转换。

另外,还需要确保在 JavaScript 中正确地处理返回的字符串。可以使用 Buffer.from 函数将其转换为 Buffer,然后使用 toString 方法将其转换为字符串。如果字符串包含非 ASCII 字符,还需要指定正确的编码方式。例如:

const buf = Buffer.from(str, 'utf16le');
const str = buf.toString('utf8');
nodejs C++回调js字符串乱码

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

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