WM_SETTEXT 写入 unicode 字符

问题描述 投票:0回答:1

我写了一小段这样的代码

// Handle = notepad
// set text to send
std::wstring message_to_send = L"xin chào bạn";
// send message
DWORD_PTR result;
SendMessageTimeoutW(Handle, WM_SETTEXT, (WPARAM)0, (LPARAM)message_to_send.c_str(), SMTO_ABORTIFHUNG, 1000, &result);

但是记事本中粘贴的文本不正确:

xin chào bạn

我哪里出了问题,我需要做什么来解决这个问题?

我尝试设置项目设置

Use Unicode Character Set
并将文件另存为编码
UTF8
但仍然错误

c++ winapi
1个回答
0
投票

正如 @Remy Lebeau 所说,您显示的结果看起来像 UTF-8,但在 ISO/拉丁字符集中被误解了。你可以告诉编译器该文件是UTF-8。

你可以在这里像Visual studio一样设置:

enter image description here

请参阅 /source-charset/utf-8 编译器选项。

© www.soinside.com 2019 - 2024. All rights reserved.