我调用的sqlite数据库,显示在ccombobox为什么是乱码啊?
是不是要utf-8 转换成 utf-16啊,怎么转啊?
我用sqlite api16位也是一样啊,生成的.db文件直接看起来怪怪的,不过用SQLite Expert还可以打开了,而且可以看到utf-16 hign endian,但显示的还是乱码,向高人请教 代码如下:
sqlite3_open(".\\PIFA.db", &db); //用sqlite_open16,其它的几个函数用16也不行
sprintf(sql, "CREATE TABLE Tbl(姓名 TEXT PRIMARY KEY);");
sqlite3_exec(db, sql, NULL, NULL, NULL); memset(sql, 0, sizeof(sql));
sprintf(sql, "INSERT INTO Tbl VALUES (?);");
sqlite3_prepare(db, sql, -1, &stmt, NULL); memset(sql, 0, sizeof(sql));
sprintf(sql, "小李");
sqlite3_bind_text(stmt, 1, sql, -1, NULL);
sqlite3_step(stmt); sqlite3_prepare(db, "SELECT * FROM Tbl", -1, &stmt, NULL);
sqlite3_step(stmt); CComboBox* pCombox = (CComboBox*)GetDlgItem(IDC_COMBO1);
pCombox->AddString((LPCTSTR)sqlite3_column_text(stmt_maijia, 0));
pCombox->SetCurSel(0);
sqlite3_finalize(stmt_maijia);
是不是要utf-8 转换成 utf-16啊,怎么转啊?
我用sqlite api16位也是一样啊,生成的.db文件直接看起来怪怪的,不过用SQLite Expert还可以打开了,而且可以看到utf-16 hign endian,但显示的还是乱码,向高人请教 代码如下:
sqlite3_open(".\\PIFA.db", &db); //用sqlite_open16,其它的几个函数用16也不行
sprintf(sql, "CREATE TABLE Tbl(姓名 TEXT PRIMARY KEY);");
sqlite3_exec(db, sql, NULL, NULL, NULL); memset(sql, 0, sizeof(sql));
sprintf(sql, "INSERT INTO Tbl VALUES (?);");
sqlite3_prepare(db, sql, -1, &stmt, NULL); memset(sql, 0, sizeof(sql));
sprintf(sql, "小李");
sqlite3_bind_text(stmt, 1, sql, -1, NULL);
sqlite3_step(stmt); sqlite3_prepare(db, "SELECT * FROM Tbl", -1, &stmt, NULL);
sqlite3_step(stmt); CComboBox* pCombox = (CComboBox*)GetDlgItem(IDC_COMBO1);
pCombox->AddString((LPCTSTR)sqlite3_column_text(stmt_maijia, 0));
pCombox->SetCurSel(0);
sqlite3_finalize(stmt_maijia);
LPCSTR lpc = (LPCSTR)sqlite3_column_text(stmt, 0);
size_t dwNum = MultiByteToWideChar(CP_UTF8, 0, lpc, -1, NULL, 0);
wchar_t* pwText = new wchar_t[dwNum];
MultiByteToWideChar(CP_UTF8, 0, lpc, -1, pwText, dwNum);
设置Combobox属性: Has Strings 为True不知道 你们的可以波