我使用C++从sqlite数据库中读取了德语文本(该文本在数据库查看器中看起来不错)。但是,当我在带有SetDlgItemText的对话框中显示它时,文本看起来像这样(参见图片)。
CString strWarning(pStmt->GetColumnCString(nCol));
SetDlgItemText(IDC_WARNING_MESSAGE, strWarning);
最佳答案
您的字符串看起来像是UTF-8编码的,Windows无法处理。
您需要将其转换为UTF-16并确保通过将项目的字符集选项更改为SetDlgItemText
或指定Use Unicode Character Set
来调用SetDlgItemTextW
的宽版本。
您可以使用MultiByteToWideChar函数将字符串从UTF-8转换为UTF-16。
关于c++ - 使用SetDlgItemText不能正确显示德语字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20411881/