Результат в Node.JS отличается от Visual Studio - PullRequest
1 голос
/ 24 сентября 2019

Я хочу преобразовать 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
...