首页 > 解决方案 > Node.JS Addon 中的结果与 Visual Studio 不同

问题描述

我想将 wchar_t 转换为普通字符串。当我在 Visual Studio 中输出文本时,我得到了正确的文本。只要我在我的 Node.JS 插件中做同样的事情,奇怪的字符就会回来。为什么呢?

std::string ws_to_UTF8 (const wchar_t *ws)
{
    std::wstring_convert <std::codecvt_utf8 <wchar_t>, wchar_t> convert;
    return convert.to_bytes (ws);
}

...

const int bufferSize = 1024;
wchar_t textBuffer[bufferSize];
int copied = SendMessage(hwndEdit, WM_GETTEXT, (WPARAM)bufferSize, (LPARAM)textBuffer);
printf("Copied %d chars.\n", copied);
printf("getting text:\n");

printf("%s \n", ws_to_UTF8(textBuffer).c_str());

// Output in Visual Studio (correct):Kein Papier / Kassette falsch eingesetzt!

// Pr├╝fen Sie, ob das Papier richtig in das Papierfach eingelegt und ob das Papierfach richtig installiert ist.

// Output in Node.JS
// µòïµ╣®ÕÇáþüíµò®Ôü▓ÔÇ»µàïþì│þæѵò┤µÿáµ▒íµì│Ôü¿µÑѵثþìÑþæÑþæ║Ó┤íÓ┤èÕÇè´▒▓µòªÔü«µÑôÔ▒ѵ╝áÔüóµàñÔü│µàɵÑ░þëÑþêáµì®þ濵خµñáÔü«µàñÔü│µàɵÑ░þëѵવíúµöáµ╣®µòºµò¼þæºþöáµæ«µ╝áÔüóµàñÔü│µàɵÑ░þëѵવíúþêáµì®þ濵خµñáþ쫵à┤µ▒¼µò®þæ▓µñáþæ│.þë»K

标签: c++node.jsnode.js-addon

解决方案


推荐阅读