【发布时间】:2013-12-07 11:54:17
【问题描述】:
我正在 Visual Studio 2012 中使用 C++ 编写 MFC 应用程序。应用程序连接到 MySQL 数据库并将每一行显示到列表框。 单词是俄语,数据库编码是 cp1251。我使用此代码设置了相同的字符集:
if (!mysql_set_character_set(mysql, "cp1251")) {
statusBox.SetWindowText((CString)"CP1251 is set for MYSQL.");
}
但这根本没有帮助。 我使用此代码显示数据:
while ((row = mysql_fetch_row(result)) != NULL) {
CString string = (CString)row[1];
listBox.AddString(string);
}
此代码也无济于事:
mysql_query(mysql, "set names cp1251");
请帮忙。我应该怎么做才能正确显示西里尔字母?
【问题讨论】:
-
CString不知道它应该使用 CP1251 对字符串进行编码。它可能使用 Unicode(取决于您的项目设置)。要将 DB 编码 (CP1251) 转换为 Unicode (UTF-16),请调用MultiByteToWideChar。 -
你能给我一个例子,我应该如何使用它吗?
标签: c++ mysql visual-studio-2012 encoding mfc