引用 1 楼 rzsheng 的回复:
应该还是编码的问题,
再尝试一下改变编码设置方面的测试
我确定了错误的地方,就是在读数据库数据(UTF-8)显示在list control控件是,list控件如果读到的数据为UTF-16的,就正确了,所以我需要解决的事情就是,读数据库数据(UTF-8),转换为UTF-16,然后显示,应该就ok了。
继续研究,acmain_chm,有好的建议请指点哈~~~~下面是出问题的代码段
void CKLMDlg::OnRefresh()
{
int i = 0 ;
int nrow = 0, ncolumn = 0;
char **azResult=NULL; //二维数组存放结果
char *zErrMsg = 0;
int index,j;
int nItem;
int result;
CListCtrl * pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST2);
CRect rt;
pListCtrl->GetClientRect(&rt);
char *sql = "SELECT * FROM Fault";
/****************************************************************************************************************/
result=sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn,&zErrMsg );
index = ncolumn;
pListCtrl->DeleteAllItems();
for( i = 0; i < nrow ; i++ )
{
for( j = 0 ; j < ncolumn; j++ )
{
CString str(azResult[index]);
if(j==0)
nItem = pListCtrl->InsertItem(i, str); // 插入第一列
else
pListCtrl->SetItemText(nItem, j, str); // 插入第二列
++index;
}
}
sqlite3_free_table( azResult ); //释放掉 azResult 的内存空间
/****************************************************************************************************************/
}