我使用C ++从sqlite数据库中读取了一个德语文本(该文本在数据库查看器中看起来不错)。但是当我在一个带有SetDlgItemText的对话框中显示它时,文本看起来像这样(见图)。
CString strWarning(pStmt->GetColumnCString(nCol));
SetDlgItemText(IDC_WARNING_MESSAGE, strWarning);
答案 0 :(得分:5)
您的字符串看起来像是编码为UTF-8,Windows无法处理。
您需要将其转换为UTF-16,并确保通过将项目的字符集选项更改为SetDlgItemText
或指定{{1}来调用广泛版本的Use Unicode Character Set
}}
您可以使用MultiByteToWideChar函数将字符串从UTF-8转换为UTF-16。