请教sqlite数据库中文乱码的问题

tju_lixiang 2010-03-03 01:14:02
开发语言:evc
数据库:SQLite
说明:有两个界面
界面一个是用来建立数据库,并且进行数据管理功能,包括ctrlist控件显示数据库内容,增加,删除,修改等功能;
界面二,是调用数据库,进行查询,显示结果显示在EDIT控件中。

1)在模拟器中,创建数据库,进行插入数据,可以在ctrlist控件中正常显示,添加,删除,都可以使用,但是界面二的程序使用数据库的时候,不能成功,我是使用SQLite Expert Personal打开建立的数据库的时候,发现数据库都是乱码,。

2)如果使用SQLite Expert Personal建立数据库,界面二的程序可以正确使用数据库,但是在界面一ctrlist中,显示乱码,无法对数据进行修改、删除、添加等操作。

请教,这个问题怎样解决呢?
...全文
1014 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
张若初zjc 2012-10-12
  • 打赏
  • 举报
回复
我也再做这个程序,,,和您的问题差不多。。。想请问您这个问题解决了没。。。
我的QQ号。。。307893976
tju_lixiang 2010-03-05
  • 打赏
  • 举报
回复
引用 2 楼 acmain_chm 的回复:
list control 控件 中估计需要处理一下字符集。
SQLite中的汉字需要用UTF字符集。

list control 用什么字符集呢?
tju_lixiang 2010-03-05
  • 打赏
  • 举报
回复
引用 2 楼 acmain_chm 的回复:
list control 控件 中估计需要处理一下字符集。
SQLite中的汉字需要用UTF字符集。

请问要怎样处理呢 ?这两天一直在查,没有找到好的解决办法
tju_lixiang 2010-03-05
  • 打赏
  • 举报
回复
引用 2 楼 acmain_chm 的回复:
list control 控件 中估计需要处理一下字符集。
SQLite中的汉字需要用UTF字符集。


我确定了错误的地方,就是在读数据库数据(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 的内存空间
/****************************************************************************************************************/
}

ACMAIN_CHM 2010-03-04
  • 打赏
  • 举报
回复
list control 控件 中估计需要处理一下字符集。
SQLite中的汉字需要用UTF字符集。
tju_lixiang 2010-03-04
  • 打赏
  • 举报
回复
有一些进展,设置encoding为UTF-8,能够插入中文数据,用SQLite Expert Personal看数据库,中文正常。别的程序查询数据库,并显示于EDIT控件中,正常。但是使用list control 控件,查询数据库,显示控件上,出现了中文乱码的问题,继续请教~

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧