Mar*_*o M 1 c++ sqlite encoding mfc codepages
我使用C++从sqlite数据库中读取了一个德语文本(该文本在数据库查看器中看起来很好).但是当我在一个带有SetDlgItemText的对话框中显示它时,文本看起来像这样(见图).

CString strWarning(pStmt->GetColumnCString(nCol));
SetDlgItemText(IDC_WARNING_MESSAGE, strWarning);
Run Code Online (Sandbox Code Playgroud)
您的字符串看起来像编码为UTF-8,Windows无法处理.
您需要将其转换为UTF-16并确保SetDlgItemText通过将项目的字符集选项更改为Use Unicode Character Set或指定来调用宽版本SetDlgItemTextW.
您可以使用MultiByteToWideChar函数将字符串从UTF-8转换为UTF-16 .