nodejs项目调用c++ dll,在英文操作系统中文数据乱码。dll为自己的开发项目
解决思路:
1 打印 nodejs 传入 c++ 的二进制。两个操作系统一样。说明在c++处理中文出错。
2 中文数据存入外部服务之前做了utf8到gbk的转码,再转为宽字符。打印转utf8之后的二进制。
发现英文系统转码后为3个字节, 中文系统为6个字节。发现是 WideCharToMultiByte函数结果不同。
3 谷歌 WideCharToMultiByte 相关资料,确定为英文系统字符集问题。修改参数即可。
参考:https://blog.csdn.net/atceedsun/article/details/50060623