使用SetDlgItemText错误地显示德语字符

时间:2013-12-05 22:12:34

标签: c++ sqlite encoding mfc codepages

我使用C ++从sqlite数据库中读取了一个德语文本(该文本在数据库查看器中看起来不错)。但是当我在一个带有SetDlgItemText的对话框中显示它时,文本看起来像这样(见图)。

enter image description here

    CString strWarning(pStmt->GetColumnCString(nCol));      
    SetDlgItemText(IDC_WARNING_MESSAGE, strWarning);

1 个答案:

答案 0 :(得分:5)

您的字符串看起来像是编码为UTF-8,Windows无法处理。

您需要将其转换为UTF-16,并确保通过将项目的字符集选项更改为SetDlgItemText或指定{{1}来调用广泛版本的Use Unicode Character Set }}

您可以使用MultiByteToWideChar函数将字符串从UTF-8转换为UTF-16。